Submitted By: Fernando de Oliveira Date: 2015-10-24 Initial Package Version: 1.8 Upstream Status: not submitted Origin: https://bitbucket.org/TimothyGu/x265/commits/a9aacc5a16116f1c663d1fcb62ad9a0985043b94/raw/ https://bitbucket.org/TimothyGu/x265/commits/578c5ef3dff46db38e7c36a8d3c6198a65c9746b/raw/ Description: Add ENABLE_STATIC:BOOL=ON, so that static lib can be disabled. --- x265_11047/source/CMakeLists.txt.orig 2015-10-08 07:01:36.000000000 -0300 +++ x265_11047/source/CMakeLists.txt 2015-10-24 17:10:57.919861668 -0300 @@ -419,16 +419,21 @@ endif() source_group(ASM FILES ${YASM_SRCS}) -add_library(x265-static STATIC $ $ ${YASM_OBJS} ${YASM_SRCS}) -if(NOT MSVC) - set_target_properties(x265-static PROPERTIES OUTPUT_NAME x265) -endif() -if(EXTRA_LIB) - target_link_libraries(x265-static ${EXTRA_LIB}) -endif() -install(TARGETS x265-static - LIBRARY DESTINATION ${LIB_INSTALL_DIR} - ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) + +option(ENABLE_STATIC "Build static library" ON) +if(ENABLE_STATIC) + add_library(x265-static STATIC $ $ ${YASM_OBJS} ${YASM_SRCS}) + if(NOT MSVC) + set_target_properties(x265-static PROPERTIES OUTPUT_NAME x265) + endif() + if(EXTRA_LIB) + target_link_libraries(x265-static ${EXTRA_LIB}) + endif() + install(TARGETS x265-static + LIBRARY DESTINATION ${LIB_INSTALL_DIR} + ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) +endif(ENABLE_STATIC) + install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h" DESTINATION include) if(CMAKE_RC_COMPILER) @@ -490,6 +495,10 @@ endif() endif() +if(NOT ENABLE_STATIC AND NOT ENABLE_SHARED) + message(FATAL_ERROR "Neither static nor shared libraries are enabled.") +endif() + if(X265_LATEST_TAG) # convert lists of link libraries into -lstdc++ -lm etc.. foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS}) @@ -551,12 +560,14 @@ else() add_executable(cli ../COPYING ${InputFiles} ${OutputFiles} ${GETOPT} ${X265_RC_FILE} ${ExportDefs} x265.cpp x265.h x265cli.h x265-extras.h x265-extras.cpp) - if(WIN32 OR NOT ENABLE_SHARED OR INTEL_CXX) - # The CLI cannot link to the shared library on Windows, it - # requires internal APIs not exported from the DLL - target_link_libraries(cli x265-static ${PLATFORM_LIBS}) - else() + if(WIN32 AND NOT ENABLE_STATIC) + message(FATAL_ERROR "The CLI cannot link to shared library on Windows as it requires internal APIs not exported from the DLL.") + elseif(INTEL_CXX AND NOT ENABLE_STATIC) + message(FATAL_ERROR "The CLI cannot link to shared library with Intel C++ Compiler as it requires internal APIs not exported from the shared library.") + elseif(ENABLE_SHARED) target_link_libraries(cli x265-shared ${PLATFORM_LIBS}) + else() + target_link_libraries(cli x265-static ${PLATFORM_LIBS}) endif() endif() set_target_properties(cli PROPERTIES OUTPUT_NAME x265)