cmake_minimum_required(VERSION 2.9) #
set(CMAKE_CXX_STANDARD 11)
add_definitions(-w) #
add_definitions(-fpermissive) # 编译时 不一致代码的诊断从错误降级为警告
SET(BUILD_PLATFORM "x86" CACHE STRING "select build cpu type")
if(BUILD_PLATFORM STREQUAL arm)
message(STATUS "当前目标机器CPU ARM 架构")
SET(CMAKE_C_COMPILER /usr/local/arm/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc)
SET(CMAKE_CXX_COMPILER /usr/local/arm/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++)
LINK_DIRECTORIES("../lib/arm")
SET(BIN_SAVE ../arm_bin/)
else()
message(STATUS "当前目标机器CPU X86 架构")
LINK_DIRECTORIES("../lib/x86" "/usr/local/neuware/lib64")
SET(BIN_SAVE ../x86_bin/)
endif()
set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} ${DEBUG_FLAG} -std=c++11 -fPIC -fpermissive -lpthread ")
set(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS} ${DEBUG_FLAG} -fPIC -fpermissive -lpthread ")
#set(BUILD_SHARED_LIBS ON)
# project(CambDemo)
include_directories( "/usr/local/neuware/include" "../include")
#"./opencv4.3"
file(GLOB SOURCE_FILES ./*.cpp)
foreach(A_CPP_FILE ${SOURCE_FILES})
get_filename_component(EXECUTABLE_NAME ${A_CPP_FILE} NAME_WE)
add_executable(${EXECUTABLE_NAME} ${A_CPP_FILE})
target_link_libraries (${EXECUTABLE_NAME} mluproc cnrt pthread )
set_target_properties(${EXECUTABLE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${BIN_SAVE}")
endforeach(A_CPP_FILE ${SOURCE_FILES})
循环相关:
file(GLOB SOURCE_FILES ./*.cpp)
foreach(A_CPP_FILE ${SOURCE_FILES})
get_filename_component(EXECUTABLE_NAME ${A_CPP_FILE} NAME_WE)
add_executable(${EXECUTABLE_NAME} ${A_CPP_FILE})
target_link_libraries (${EXECUTABLE_NAME} mluproc cnrt pthread )
set_target_properties(${EXECUTABLE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${BIN_SAVE}")
endforeach(A_CPP_FILE ${SOURCE_FILES})
file(GLOB SOURCE_FILES ./*.cpp)
查找目录下所有cpp 文件
get_filename_component(EXECUTABLE_NAME ${A_CPP_FILE} NAME_WE)
去除文件后缀
分支选择:
SET(BUILD_PLATFORM "x86" CACHE STRING "select build cpu type")
if(BUILD_PLATFORM STREQUAL arm)
message(STATUS "当前目标机器CPU ARM 架构")
SET(CMAKE_C_COMPILER /usr/local/arm/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc)
SET(CMAKE_CXX_COMPILER /usr/local/arm/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++)
LINK_DIRECTORIES("../lib/arm")
SET(BIN_SAVE ../arm_bin/)
else()
message(STATUS "当前目标机器CPU X86 架构")
LINK_DIRECTORIES("../lib/x86" "/usr/local/neuware/lib64")
SET(BIN_SAVE ../x86_bin/)
endif()
cmake -D BUILD_PLATFORM=x86 ..
cmake -D BUILD_PLATFORM=arm ..