95 lines
2.7 KiB
CMake
95 lines
2.7 KiB
CMake
cmake_minimum_required (VERSION 2.8.1)
|
|
|
|
#项目名
|
|
project (srv)
|
|
|
|
set( CMAKE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../sdk) # include 文件夹
|
|
|
|
#头文件
|
|
include_directories(
|
|
${CMAKE_INCLUDE_DIR}/public
|
|
${CMAKE_INCLUDE_DIR}/system
|
|
${CMAKE_INCLUDE_DIR}/utils
|
|
|
|
${CMAKE_INCLUDE_DIR}/lua-5.1/src
|
|
${CMAKE_INCLUDE_DIR}/tolua++/src
|
|
${CMAKE_INCLUDE_DIR}/zlib 1.1.4/src
|
|
${CMAKE_INCLUDE_DIR}/mysql-5.2/include
|
|
./
|
|
# ./include
|
|
# ./3rd/gtest-1.3.0
|
|
# ./3rd/lua
|
|
# ./3rd/zlib
|
|
# ./3rd/tolua++
|
|
)
|
|
|
|
message( "main ---- CMAKE_INCLUDE_DIR 1******************************-> ${CMAKE_INCLUDE_DIR}" )
|
|
# message( "main ---- CMAKE_CURRENT_SOURCE_DIR 1******************************-> ${CMAKE_CURRENT_SOURCE_DIR}" )
|
|
|
|
|
|
#源目录
|
|
FILE(GLOB_RECURSE H_LIST "*.h")
|
|
FILE(GLOB_RECURSE HPP_LIST "*.hpp")
|
|
FILE(GLOB_RECURSE CPP_LIST "*.cpp")
|
|
FILE(GLOB_RECURSE CC_LIST "*.cc")
|
|
FILE(GLOB_RECURSE C_LIST "*.c")
|
|
set(SRV_SRCS ${CPP_LIST} ${CC_LIST} ${C_LIST})
|
|
set(HEAD_SRCS ${H_LIST} ${HPP_LIST})
|
|
|
|
if(MSVC)
|
|
# 头文件
|
|
include_directories(
|
|
./3rd/mysql
|
|
)
|
|
# 编译选项
|
|
ADD_DEFINITIONS(/W3 /wd"4996" /wd"4819" /wd"4091" /wd"4099" /wd"4800" /wd"4996")
|
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd /MP4")
|
|
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
|
|
else()
|
|
# 头文件
|
|
include_directories(
|
|
/usr/local/mysql/include
|
|
/usr/local/include/curl
|
|
)
|
|
|
|
# 编译选项
|
|
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -Wall -Wextra -Wfatal-errors -std=c++11 -fpermissive -D_DEBUG -g -ggdb")
|
|
SET(CMAKE_CXX_FLAGS_RELEASE "-O0 -g -Wall -std=c++11 -fpermissive -DNDEBUG")
|
|
#add_definitions("-O0 -g3 -gdwarf-2 -std=c++11 -Wall -c -fmessage-length=0 -MMD -MP")
|
|
endif(MSVC)
|
|
|
|
|
|
if(MSVC)
|
|
# 项目内文件分组工具
|
|
function(group_by_dir source_dir)
|
|
message(STATUS "${ARGV0}")
|
|
foreach(FILE ${ARGN})
|
|
message(STATUS "${FILE}")
|
|
|
|
# 获取文件绝对路径
|
|
get_filename_component(FULL_NAME "${FILE}" ABSOLUTE)
|
|
# 获取文件父路径
|
|
get_filename_component(PARENT_DIR "${FULL_NAME}" PATH)
|
|
# 移除父路径中的源码根路径
|
|
string(REPLACE "${ARGV0}" "" GROUP "${PARENT_DIR}")
|
|
|
|
# 确保路径使用windows路径符号
|
|
string(REPLACE "/" "\\" GROUP "${GROUP}")
|
|
# 分组
|
|
source_group("${GROUP}" FILES "${FILE}")
|
|
endforeach()
|
|
endfunction(group_by_dir)
|
|
|
|
|
|
# 项目分组
|
|
group_by_dir(${PROJECT_SOURCE_DIR} ${SRV_SRCS})
|
|
group_by_dir(${PROJECT_SOURCE_DIR} ${HEAD_SRCS})
|
|
endif(MSVC)
|
|
|
|
link_directories (
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../common/cpp/libs/3rd/bin
|
|
)
|
|
#生成目标
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/../libs/gateway/)
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/../libs/gateway/)
|
|
add_library(srv STATIC ${SRV_SRCS} ${HEAD_SRCS}) |