cmakelits 案例

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}
)

 

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

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    cmakelits 案例

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/360330

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午1:13
下一篇 2023年3月2日 下午1:13

相关推荐