# executable set( EXE_NAME EncoderApp ) # get source files file( GLOB SRC_FILES "*.cpp" ) # get include files file( GLOB INC_FILES "*.h" ) # get additional libs for gcc on Ubuntu systems if( CMAKE_SYSTEM_NAME STREQUAL "Linux" ) if( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" ) if( USE_ADDRESS_SANITIZER ) set( ADDITIONAL_LIBS asan ) endif() endif() endif() # NATVIS files for Visual Studio if( MSVC ) file( GLOB NATVIS_FILES "../../VisualStudio/*.natvis" ) # extend the stack size on windows to 2MB set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:0x200000" ) endif() # add executable add_executable( ${EXE_NAME} ${SRC_FILES} ${INC_FILES} ${NATVIS_FILES} ) include_directories(${CMAKE_CURRENT_BINARY_DIR}) if( DEFINED ENABLE_TRACING ) if( ENABLE_TRACING ) target_compile_definitions( ${EXE_NAME} PUBLIC ENABLE_TRACING=1 ) else() target_compile_definitions( ${EXE_NAME} PUBLIC ENABLE_TRACING=0 ) endif() endif() if( DEFINED ENABLE_HIGH_BITDEPTH ) if( ENABLE_HIGH_BITDEPTH ) target_compile_definitions( ${EXE_NAME} PUBLIC RExt__HIGH_BIT_DEPTH_SUPPORT=1 ) else() target_compile_definitions( ${EXE_NAME} PUBLIC RExt__HIGH_BIT_DEPTH_SUPPORT=0 ) endif() endif() if( CMAKE_COMPILER_IS_GNUCC AND BUILD_STATIC ) set( ADDITIONAL_LIBS ${ADDITIONAL_LIBS} -static -static-libgcc -static-libstdc++ ) target_compile_definitions( ${EXE_NAME} PUBLIC ENABLE_WPP_STATIC_LINK=1 ) endif() target_link_libraries( ${EXE_NAME} CommonLib EncoderLib DecoderLib Utilities ${ADDITIONAL_LIBS} ) if( EXTENSION_360_VIDEO ) target_link_libraries( ${EXE_NAME} Lib360 AppEncHelper360 ) endif() if( EXTENSION_HDRTOOLS ) target_link_libraries( ${EXE_NAME} HDRLib ) endif() # lldb custom data formatters if( XCODE ) add_dependencies( ${EXE_NAME} Install${PROJECT_NAME}LldbFiles ) endif() if( CMAKE_SYSTEM_NAME STREQUAL "Linux" ) add_custom_command( TARGET ${EXE_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<$:${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}/EncoderApp> $<$:${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE}/EncoderApp> $<$:${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO}/EncoderApp> $<$:${CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL}/EncoderApp> $<$:${CMAKE_SOURCE_DIR}/bin/EncoderAppStaticd> $<$:${CMAKE_SOURCE_DIR}/bin/EncoderAppStatic> $<$:${CMAKE_SOURCE_DIR}/bin/EncoderAppStaticp> $<$:${CMAKE_SOURCE_DIR}/bin/EncoderAppStaticm> ) endif() # example: place header files in different folders source_group( "Natvis Files" FILES ${NATVIS_FILES} ) # set the folder where to place the projects set_target_properties( ${EXE_NAME} PROPERTIES FOLDER app LINKER_LANGUAGE CXX )