CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(VMLTK_MODULE) # DEBUG, RELEASE, MINSIZEREL, RELWITHDEBINFO # We can use -DCMAKE_BUILD_TYPE=Debug or -DCMAKE_BUILD_TYPE=RelWithDebInfo to define something IF(CMAKE_BUILD_TYPE STREQUAL "Debug") MESSAGE("====== Debug mode ======") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -Wextra -pedantic -pthread -O0 -g3 -fasynchronous-unwind-tables") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pedantic -pthread -O0 -g3 -fasynchronous-unwind-tables") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic") SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -rdynamic") SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -rdynamic") ADD_DEFINITIONS("-DDEBUG") SET(DEBUG_ENABLE true) ELSE(CMAKE_BUILD_TYPE STREQUAL "Debug") IF(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") MESSAGE("====== RelWithDebInfo mode ======") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -O3 -Wall -Wextra -pedantic -pthread") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -Wall -Wextra -pedantic -pthread") ADD_DEFINITIONS("-DDEBUG") SET(DEBUG_ENABLE true) ELSE(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") MESSAGE("====== Release mode ======") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -O3 -Wall -Wextra -pedantic -pthread -s") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -Wall -Wextra -pedantic -pthread -s") ADD_DEFINITIONS("-DNDEBUG") SET(DEBUG_ENABLE false) ENDIF(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") ENDIF(CMAKE_BUILD_TYPE STREQUAL "Debug") IF(SDK_TYPE STREQUAL "SDK_IPCAMERA") ADD_DEFINITIONS("-DSDK_IPCAMERA") SET(GAMR_SUPPORT_ENABLE 1) SET(AAC_SW_DEC_ENABLE 1) ELSEIF(SDK_TYPE STREQUAL "SDK_CAR_BLACK_BOX") ADD_DEFINITIONS("-DSDK_CAR_BLACK_BOX") ENDIF() ADD_DEFINITIONS("-D_GNU_SOURCE") SET(AAC_HW_ENCODE_ENABLE 1) # To use SW AAC (fdk-aacenc/fdk-aacdec), must disable HW and enable SW DEC # SET(AAC_HW_ENCODE_ENABLE 0) # SET(AAC_SW_DEC_ENABLE 1) SET(VIENNA_PLATFORM true CACHE BOOL "target to Vienna platform") SET(PLATFORM_DIR vienna) SET(CMAKE_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../cmake) SET(OPEN_SRC_3RD_INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/install_temp_open_src_3rd) SET(INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../vtcs_root_${PLATFORM_DIR}") SET(VTCS_SW_DEV_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../vtcs_root_${PLATFORM_DIR}") IF(CMAKE_CROSSCOMPILING) SET(HOST_CONFIG --host=arm-linux) #GET_FILENAME_COMPONENT(MY_TOOLCHAIN_DIR ${CMAKE_C_COMPILER} DIRECTORY) # This is for CMake > 2.8.11 GET_FILENAME_COMPONENT(MY_TOOLCHAIN_DIR ${CMAKE_C_COMPILER} PATH) # This is for CMake <= 2.8.11 SET(ADDITIONAL_ENV_CONFIG CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} LD=${CMAKE_LINKER} NM=${CMAKE_NM} AR=${CMAKE_AR} RANLIB=${CMAKE_RANLIB} STRIP=${CMAKE_STRIP} OBJDUMP=${CMAKE_OBJDUMP} PKG_CONFIG=${MY_TOOLCHAIN_DIR}/pkg-config) ENDIF(CMAKE_CROSSCOMPILING) #### Get the path of toolchain and the prefix of toolchain binaries. #GET_FILENAME_COMPONENT(MY_TOOLCHAIN_BIN_PATH ${CMAKE_C_COMPILER} PATH) #GET_FILENAME_COMPONENT(TEMP_CC_NAME ${CMAKE_C_COMPILER} NAME) #STRING(REGEX REPLACE "gcc|cc$" "" MY_TOOLCHAIN_BIN_PREFIX ${TEMP_CC_NAME}) INCLUDE_DIRECTORIES(${VTCS_SW_DEV_ROOT}/include ${OPEN_SRC_3RD_INSTALL_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}) LINK_DIRECTORIES(${VTCS_SW_DEV_ROOT}/lib ${OPEN_SRC_3RD_INSTALL_DIR}/lib) SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/libs/${PLATFORM_DIR}) SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin/${PLATFORM_DIR}) INCLUDE(${CMAKE_MODULE_DIR}/ConditionalAddSubDir.cmake) ADD_SUBDIRECTORY(MsgBroker) ADD_SUBDIRECTORY(open_source_3rd) ADD_SUBDIRECTORY(audiotk) ADD_SUBDIRECTORY(apps) #ADD_SUBDIRECTORY(vospi)