# executable set( EXE_NAME vvencinterfacetest ) # get source files file( GLOB SRC_FILES CONFIGURE_DEPENDS "*.c" ) # get include files file( GLOB INC_FILES CONFIGURE_DEPENDS "*.h" ) # set resource file for MSVC compilers if( MSVC ) set( RESOURCE_FILE ${EXE_NAME}.rc ) endif() if( NOT CMAKE_CXX_FLAGS STREQUAL CMAKE_C_FLAGS ) message( WARNING "CMAKE_CXX_FLAGS and CMAKE_C_FLAGS don't match: \"${CMAKE_CXX_FLAGS}\" vs \"${CMAKE_C_FLAGS}\"" ) endif() string( TOUPPER ${CMAKE_BUILD_TYPE} BUILD_TYPE_UPPER ) if( NOT CMAKE_CXX_FLAGS_${BUILD_TYPE_UPPER} STREQUAL CMAKE_C_FLAGS_${BUILD_TYPE_UPPER} ) message( WARNING "CMAKE_CXX_FLAGS_${BUILD_TYPE_UPPER} and CMAKE_C_FLAGS_${BUILD_TYPE_UPPER} don't match: \"${CMAKE_CXX_FLAGS_${BUILD_TYPE_UPPER}}\" vs \"${CMAKE_C_FLAGS_${BUILD_TYPE_UPPER}}\"" ) endif() # add executable add_executable( ${EXE_NAME} ${SRC_FILES} ${INC_FILES} ${RESOURCE_FILE} ) set_target_properties( ${EXE_NAME} PROPERTIES RELEASE_POSTFIX "${CMAKE_RELEASE_POSTFIX}" ) set_target_properties( ${EXE_NAME} PROPERTIES DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}" ) set_target_properties( ${EXE_NAME} PROPERTIES RELWITHDEBINFO_POSTFIX "${CMAKE_RELWITHDEBINFO_POSTFIX}" ) set_target_properties( ${EXE_NAME} PROPERTIES MINSIZEREL_POSTFIX "${CMAKE_MINSIZEREL_POSTFIX}" ) if( VVENC_LIBRARY_ONLY ) set_target_properties( ${EXE_NAME} PROPERTIES EXCLUDE_FROM_ALL TRUE ) endif() target_compile_options( ${EXE_NAME} PRIVATE $<$,$>:-Wall> $<$:-Wall -fdiagnostics-show-option> $<$:/W4 /wd4100 /wd4244 /wd4251 /wd4996>) target_link_libraries( ${EXE_NAME} vvenc ) # example: place header files in different folders source_group( "Header Files" FILES ${INC_FILES} ) source_group( "Resource Files" FILES ${RESOURCE_FILE} ) # set the folder where to place the projects set_target_properties( ${EXE_NAME} PROPERTIES FOLDER test )