Cmakelists.txt 生成动态库
project(WIFI_SERVER)
cmake_minimum_required(VERSION 2.8.12)
include (../../cross.cmake)
set(WIFI_SERVER_SRC_FILES
src/wifi_server.cpp
)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/../../../framework/out ${CMAKE_CURRENT_SOURCE_DIR}/include
)
LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/lib ${CMAKE_CURRENT_SOURCE_DIR}/../../framework/out)
add_definitions()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -std=c++11")
add_library(wifi_server SHARED ${WIFI_SERVER_SRC_FILES})
target_link_libraries(wifi_server
softap wifid wifimg)
set(INSTALL_HEAD_FILES src/wifi_server.h)
install(TARGETS wifi_server DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/out)
install(FILES ${INSTALL_HEAD_FILES} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/out/wifi_server)
Cmakelists.txt 生成可执行文件
project(SYSTEM_SETTINGS)
cmake_minimum_required(VERSION 2.8.12)
include (./cross.cmake)
set(SYSTEM_SETTINGS_SRC_FILES
src/system_settings.cpp
main.cpp
)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/../framework/out ${CMAKE_CURRENT_SOURCE_DIR}/../framework/external_party/out ${CMAKE_CURRENT_SOURCE_DIR}/inc
)
LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/../framework/out ${CMAKE_CURRENT_SOURCE_DIR}/../framework/external_party/out)
add_definitions()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_executable(system_settings ${SYSTEM_SETTINGS_SRC_FILES})
target_link_libraries(system_settings
hal adk pthread messenger cjson nanomsg)
target_include_directories(system_settings
PRIVATE src)
install(TARGETS system_settings DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/./out)
cross.cmake // 交叉编译工具链信息
SET(CROSS_COMPILE 1)
IF(CROSS_COMPILE)
SET(CMAKE_SYSTEM_NAME Linux)
SET(TOOLCHAIN_DIR "/home/zhengyang/work/git_server_work/tools/toolchain")
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/arm-openwrt-linux-gnueabi-g++)
set(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/arm-openwrt-linux-gnueabi-gcc)
set(GNU_FLAGS "-Os -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -fno-caller-saves -Wno-unused-result -mfloat-abi=hard -Wformat -Werror=format-security -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -DNDEBUG -w -g")
set(CMAKE_CXX_FLAGS "${GNU_FLAGS}")
set(CMAKE_C_FLAGS "${GNU_FLAGS}")
SET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_DIR}
${TOOLCHAIN_DIR}/arm-none-linux-gnueabi/include
${TOOLCHAIN_DIR}/arm-none-linux-gnueabi/lib )
#ADD_DEFINITIONS(-DTEST_IPC)
ENDIF(CROSS_COMPILE)