#CMake最低版本號要求
cmake_minimum_required(VERSION 2.8)
#指定專案名稱
project(openailab_four_monitor)
#指定工程需要用到的一些庫
set(ENV{PKG_CONFIG_PATH} /usr/local/AID/pkgconfig)
find_package(PkgConfig)
pkg_search_module(BLADECV REQUIRED bladecv)
pkg_search_module(GTK REQUIRED gtk±3.0)
#find_package(PkgConfig)
#find_package(Qt5 REQUIRED Widgets)
#find_package(Qt5 REQUIRED Core)
#find_package(Qt5 REQUIRED Gui)
#包含c++11特性
set(CMAKE_CXX_FLAGS 「${CMAKE_CXX_FLAGS} -std=c++11 -g」)
#指定版本資訊
set(CMAKE_SYSTEM_VERSION 1)
#若是需要指定編譯器路徑
#set(CROSS_TOOLCHAIN_PREFIX 「/path/arm-linux-」)
#指定編譯器
#set(CMAKE_C_COMPILER 「KaTeX parse error: Expected 'EOF', got '#' at position 31: …N_PREFIX}gcc") #̲set(CMAKE_CXX_C…{CROSS_TOOLCHAIN_PREFIX}g++」)
#使用預設路徑的g++指定編譯器
set(CMAKE_CXX_COMPILER 「g++」)
#指定編譯選項
set(CMAKE_BUILD_TYPE Debug )
#指定編譯目錄
set(PROJECT_BINARY_DIR ${PROJECT_SOURCE_DIR}/build)
#新增子目錄,這樣進入原始碼檔案src目錄可以繼續構建
#add_subdirectory(${PROJECT_SOURCE_DIR}/src)
#查詢當前目錄下的所有原始檔,
#並將名稱儲存到DIR_LIB_SRCS目錄
#aux_source_directory(. DIR_LIB_SRCS)
#指定標頭檔案目錄,PROJECT_SOURCE_DIR爲工程的根目錄
include_directories(
${PROJECT_SOURCE_DIR}/include
/usr/local/AID
${BLADECV_INCLUDE_DIRS}
${GTK_INCLUDE_DIRS}
)
#新增需要鏈接的庫檔案目錄
link_directories(
/usr/lib64/
${BLADECV_LIBRARY_DIRS}
${GTK_LIBRARY_DIRS}
)
#新增編譯參數和橫定義
#option(USE_BLADECV 「bladecv」 ON)
#if(USE_BLADECV)
#add_definitions(-DBLADECV)
#endif()
#設定編譯選項(會將gcc g++全部加上)
#add_compile_options(-g -std=c++11)
add_compile_options(-fPIC)
#指定可執行檔案的輸出目錄,輸出到bin下面 下麪
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#生成動態庫
#add_library(shared_demo SHARED demo.cpp -lrtspclient -lrockchip_rga -lrockchip_mpp -ldrm -lpthread
#-lbcv -lgtk-3 -lrtspclient)
#設定庫輸出名爲 shared => libshared.so
#set_target_properties(shared_demo PROPERTIES OUTPUT_NAME 「shared」)
#生成靜態庫
#add_library(static_demo STATIC demo.cpp -lrtspclient -lrockchip_rga -lrockchip_mpp -ldrm -lpthread
#-lbcv -lgtk-3 -lrtspclient)
#設定輸庫出名爲 static => libstatic.a
#set_target_properties(static_demo PROPERTIES OUTPUT_NAME 「static」)
#指定庫檔案輸出路徑
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#在指定目錄下查詢庫,並儲存在LIBPATH變數中
#find_library(LIBPATHS shared ${PROJECT_SOURCE_DIR}/lib /usr/lib64)
#指定生成目標
add_executable(demo demo.cpp)
#鏈接共用庫
target_link_libraries(demo -lrtspclient -lrockchip_rga -lrockchip_mpp -ldrm -lpthread
-lbcv -lgtk-3 -lrtspclient ${BLADECV_LDFLAGS} ${GTK_LDFLAGS})