#项目名称
project(YourProject)
#项目的资源文件
FILE(GLOB SC_FILES "*.cpp" "*.c" "*.h" "*.hpp")
# 设置静态库的输出目录
#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
# 设置动态库的输出目录
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
# 设置运行时文件的输出目录
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
#宏定义
add_definitions(-DNDEBUG)
add_definitions(-DD3DENGINE_EXPORTS)
add_definitions(-DDENTALSCENE_EXPORTS)
add_definitions(-D_WINDOWS)
add_definitions(-D_USRDLL)
add_definitions(-DDXUT_AUTOLIB)
add_definitions(-D_USE_MATH_DEFINES)
add_definitions(-DUNICODE -D_UNICODE)
#第三方依赖库目录
link_directories("${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
link_directories("../libs/OpenMesh_x64/lib")
link_directories("../libs/PQP/lib")
link_directories("${CMAKE_BINARY_DIR}/lib/Release")
#第三方依赖头文件目录
include_directories("../libs/OpenMesh_x64/include")
#第三方依赖头文件目录
include_directories("../libs/OpenMesh_x64/include")
include_directories("../libs/PQP/include")
include_directories("../DXUT/Core")
include_directories("../DXUT/Optional")
# 设置运行时文件的输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# 设置动态库,动态库项目
add_library(YourProject SHARED ${SC_FILES})
set_target_properties(YourProject
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
)
set_target_properties(YourProject
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
)
#添加第三方连接静态库
target_link_libraries(YourProject
optimized PQP.lib
optimized DXUTCore.lib
optimized DXUTOptional.lib
optimized COMCTL32.LIB
#添加连接静态库
optimized OpenMeshCore.lib
optimized OpenMeshTools.lib
debug OpenMeshCored.lib
debug OpenMeshToolsd.lib
)
项目可以分层级,分别添加CMakeLists,最外层的类似如下
cmake_minimum_required(VERSION 3.12)
project(解决方案名称)
cmake_policy(SET CMP0079 NEW)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_CONFIGURATION_TYPES "Debug" "Release")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD")
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/你的目录")
#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Bin)
#设置全局变量
#set(BOOST_DIRECTORY "D:/Boost")
#set(CGAL_DIRECTORY "D:/CGAL")
#宏定义
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
#解决方案下的其他项目
add_subdirectory(YourProject1)
add_subdirectory(YourProject2)
add_subdirectory(YourProject3)
add_subdirectory(YourProject4)
add_subdirectory(YourProject5)