80 lines
3.6 KiB
CMake
80 lines
3.6 KiB
CMake
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)
|