首页 > 其他 > 详细

cmakelits 案例

时间:2020-06-29 15:38:32      阅读:68      评论:0      收藏:0      [点我收藏+]

CMAKE_MINIMUM_REQUIRED (VERSION 3.10)
project(myclienttest)

IF (${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
SET (CMAKE_CXX_FLAGS "-std=c++11 -Wl,-rpath,./ ${CMAKE_CXX_FLAGS}")
ELSEIF (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
SET (CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
ELSEIF (MSVC)
SET (CMAKE_CXX_FLAGS "-D_SCL_SECURE_NO_WARNINGS ${CMAKE_CXX_FLAGS}")
SET (CMAKE_CXX_FLAGS "-D_CRT_SECURE_NO_WARNINGS ${CMAKE_CXX_FLAGS}")
SET (CMAKE_CXX_FLAGS "-D_WIN32_WINNT=0x0600 ${CMAKE_CXX_FLAGS}")
ENDIF ()
IF (MSVC)
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
STRING(REGEX REPLACE "/W[0-4]" "/W3" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
ELSE ()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
ENDIF ()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4251 /wd4146 /wd4244")
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MT")
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MT")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:2048000,4096")
#message(STATUS ${CMAKE_CXX_FLAGS_RELEASE})
#message(STATUS ${CMAKE_CXX_FLAGS_DEBUG})
ELSE ()
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DNDEBUG")
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG -O0")
ENDIF ()


include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/utils
${CMAKE_CURRENT_SOURCE_DIR}/hftbt/include
${CMAKE_CURRENT_SOURCE_DIR}
)
#lib path
if(CMAKE_CL_64)
set(LIB_PATH
${CMAKE_CURRENT_SOURCE_DIR}/lib64/vs14/
${CMAKE_CURRENT_SOURCE_DIR}/libsqlite/Release64/
)
file(GLOB dll_FILE "lib64/*.dll" )
else()
set(LIB_PATH
${CMAKE_CURRENT_SOURCE_DIR}/lib/vs14/
${CMAKE_CURRENT_SOURCE_DIR}/lib/vs14/debug/
${CMAKE_CURRENT_SOURCE_DIR}/libsqlite/Release/
)
file(GLOB dll_FILE "lib/*.dll" )
endif()

file(COPY ${dll_FILE}
DESTINATION
${CMAKE_CURRENT_BINARY_DIR}/Debug
)
file(COPY ${dll_FILE}
DESTINATION
${CMAKE_CURRENT_BINARY_DIR}/Release
)

#lib basename
set(LIBNAMES libcrypto libssl mysqlcppconn8 sqlite3)
FOREACH(v ${LIBNAMES})
find_library(LIB_${v} ${v} HINTS ${LIB_PATH})
LIST(APPEND LIBS ${LIB_${v}})
ENDFOREACH(v)

#ADD_SUBDIRECTORY (src)
file(GLOB SRC_FILE
"*.cpp"
#"src/*.cc"
"utils/*.cc"
)

add_executable(myclienttest ${SRC_FILE})

target_link_libraries( # 目标库
myclienttest
${LIBS}
)

 

cmakelits 案例

原文:https://www.cnblogs.com/liuguoyao514257665/p/13208132.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!