103 lines
4.0 KiB
CMake
103 lines
4.0 KiB
CMake
cmake_minimum_required(VERSION 3.10.0)
|
|
|
|
project(fairino_cppSDK VERSION 0.1.0 LANGUAGES C CXX)
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
add_compile_options(-Wall -Wextra -Wpedantic -fPIC)
|
|
endif()
|
|
|
|
# 设置编译开关
|
|
if(WIN32)
|
|
message("this windows platform")
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
add_definitions(-DWINDOWS_OPTION)
|
|
elseif(UNIX)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
message("this is unix-like system")
|
|
add_definitions(-DLINUX_OPTION)
|
|
endif()
|
|
|
|
set(BASE_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src/include/Base)
|
|
set(LOG_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src/include/Log)
|
|
set(ROBOT_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src/include/Robot-CN)
|
|
set(TCP_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src/include/TcpClient)
|
|
set(XMLRPC_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/src/include/XmlRpc)
|
|
|
|
set(BASE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/src/Base)
|
|
set(LOG_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/src/Log)
|
|
set(ROBOT_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/src/Robot)
|
|
set(TCP_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/src/TcpClient)
|
|
set(XMLRPC_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/src/XmlRpc)
|
|
message(${XMLRPC_SRC})
|
|
|
|
include_directories(${BASE_INCLUDE})
|
|
include_directories(${LOG_INCLUDE})
|
|
include_directories(${ROBOT_INCLUDE})
|
|
include_directories(${TCP_INCLUDE})
|
|
include_directories(${XMLRPC_INCLUDE})
|
|
|
|
file(GLOB ALL_INCLUDE ${BASE_INCLUDE}/*.h
|
|
${BASE_INCLUDE}/*.hpp
|
|
${LOG_INCLUDE}/*.h
|
|
${ROBOT_INCLUDE}/*.h
|
|
${TCP_INCLUDE}/*.h
|
|
${XMLRPC_INCLUDE}/*.h)
|
|
|
|
|
|
file(GLOB ALL_SRC ${BASE_SRC}/*.cpp
|
|
${LOG_SRC}/*.c
|
|
${LOG_SRC}/*.cpp
|
|
${ROBOT_SRC}/*.cpp
|
|
${TCP_SRC}/*.cpp
|
|
${XMLRPC_SRC}/*.cpp)
|
|
|
|
|
|
|
|
if(WIN32)
|
|
# 静态库路径
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/build/bin/Release)
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/build/bin/Debug)
|
|
# 动态库路径
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/build/bin/Release)
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/build/bin/Debug)
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/build/bin/Release)
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/build/bin/Debug)
|
|
|
|
add_library(fairino SHARED ${ALL_INCLUDE} ${ALL_SRC})
|
|
#add_library(fairinod STATIC ${ALL_INCLUDE} ${ALL_SRC})
|
|
target_link_libraries(fairino ws2_32)
|
|
target_link_libraries(fairino Shlwapi)
|
|
|
|
#add_executable(test_fairino ${ALL_INCLUDE} ${ALL_SRC} ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp)
|
|
#target_link_libraries(test_fairino ws2_32)
|
|
#target_link_libraries(test_fairino Shlwapi)
|
|
|
|
elseif(UNIX)
|
|
# 静态库路径
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/LinuxBuild/bin)
|
|
# 动态库路径
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/LinuxBuild/bin)
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/LinuxBuild/bin)
|
|
add_library(fairino SHARED ${ALL_INCLUDE} ${ALL_SRC})
|
|
# 添加调试信息
|
|
SET(CMAKE_BUILD_TYPE "Release")
|
|
target_compile_options(fairino PRIVATE -g)
|
|
# 关闭优化选项
|
|
target_compile_options(fairino PRIVATE -O0)
|
|
# 为动态库生成版本信息
|
|
set_target_properties(fairino PROPERTIES VERSION 2.3.2 SOVERSION 2)
|
|
|
|
add_executable(test_fairino ${ALL_INCLUDE} ${ALL_SRC} ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp)
|
|
SET(CMAKE_BUILD_TYPE "Release")
|
|
# 添加调试信息
|
|
target_compile_options(test_fairino PRIVATE -g)
|
|
# 关闭优化选项
|
|
target_compile_options(test_fairino PRIVATE -O0)
|
|
target_link_libraries(test_fairino pthread)
|
|
#target_link_libraries(test_fairino ${CMAKE_CURRENT_SOURCE_DIR}/LinuxBuild/bin/libfairino.so)
|
|
endif() |