-
Notifications
You must be signed in to change notification settings - Fork 1
/
cmake_项目示例(option,下拉列表等).txt
107 lines (77 loc) · 3.03 KB
/
cmake_项目示例(option,下拉列表等).txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
cmake_minimum_required(VERSION 2.8.11)
if(POLICY CMP0020)
cmake_policy(SET CMP0020 NEW)
endif()
#qt vtk vki python qtribbion occ
set(projectName clasp)
PROJECT(${projectName})
add_definitions(-DWNT)
add_definitions(-DNOTDLLFORMAT)
# ADD_DEFINITIONS(-DDEBUG)
add_definitions(-DRCS_MODE)
# root of your msvc14 x64 prebuild, there should be a `/lib/cmake` dir
set( CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} $ENV{QT5_DIR} ) 增加qt的查找路径
set( CMAKE_INCLUDE_CURRENT_DIR ON )
set( CMAKE_AUTOMOC ON ) 增加moc的处理
SET(VTK_DIR ${Products}/Debug/VTK7.11/lib/cmake/vtk-7.1) 增加vtk的查找路径
find_package(VTK REQUIRED)
target_link_libraries(${projectName} ${VTK_LIBRARIES})
if(VTK_LIBRARIES)
if(${VTK_VERSION} VERSION_LESS "6")
target_link_libraries(${projectName} ${VTK_LIBRARIES} QVTK)
else()
target_link_libraries(${projectName} ${VTK_LIBRARIES})
endif()
else()
target_link_libraries(${projectName} vtkHybrid QVTK vtkViews ${QT_LIBRARIES})
endif()
include_directories(${CMAKE_CURRENT_SOURCE_DIR} 增加项目的包含路径
${CMAKE_CURRENT_BINARY_DIR}
)
#ui
set(solver_UI
solver/excitation.ui
solver/init_setting.ui
solver/record.ui
)
set(UI_FILES
${solver_UI}
${somap_UI}
)
qt5_wrap_ui(UISrcs ${UI_FILES} ) 增加对于ui的支持
qt5_wrap_cpp(__Module_MOC_HDRS ${Module_HDRS}) 将moc文件输出到一个变量中,便于梳理项目结构
#aux_source_directory(post post_SRCS) 自动查找路径“post”下的源文件到变量post_SRCS
FILE(GLOB SRC_FILES ${ROOT_DIR}/*.cpp)
#同理,查找当前文件夹中所有的头文件
FILE(GLOB HEAD_FILES ${ROOT_DIR}/*.h)
#同理,查找当前文件夹中所有的ui文件
FILE(GLOB UI_FILES ${ROOT_DIR}/*.ui)
##vs filter
SOURCE_GROUP("main" FILES 增加文件筛选
${main_SRCS}
)
SOURCE_GROUP("moduleinterface" FILES
${moduleinterface_SRCS}
)
add_executable(${projectName} 生成exe项目
${Module_SRCS}
${UISrcs}
${QRC_SOURCES}
)
find_package(Qt5Core) 注意:在target_link_libraries使用之前应该先使用add_executable,先定义projectName 使用qt库 该用法将同时配置好debug和
qt5_use_modules()qt5_use_modules(${projectName} Core Gui Widgets OpenGL Xml Charts)
if (NOT BUILD_CONFIGURATION)
set (BUILD_CONFIGURATION "Release" CACHE STRING "Build type of Virgo" FORCE)force变量表示即使该变量在在内存中,也任然使用修改后的值
SET_PROPERTY(CACHE BUILD_CONFIGURATION PROPERTY STRINGS Release Debug RelWithDebInfo)
endif()
set (CMAKE_BUILD_TYPE ${BUILD_CONFIGURATION} CACHE INTERNAL "Build type of OCCT" FORCE )用户自己选择所编译的类型
OPTION(ENABLE_QTITANRIBBON "ENABLE_QTITANRIBBON" ON)设置ENABLE_QTITANRIBBON为ON
#link
TARGET_LINK_LIBRARIES(${projectName} debug ${Python_lib}) 增加debug
TARGET_LINK_LIBRARIES(${projectName} debug ${devtools_lib})
TARGET_LINK_LIBRARIES(${projectName} debug ${QtitanRibbon_lib})
TARGET_LINK_LIBRARIES(${projectName} debug ${Occt_lib})
TARGET_LINK_LIBRARIES(${projectName} optimized ${Python_lib}) 增加release
TARGET_LINK_LIBRARIES(${projectName} optimized ${devtools_lib})
TARGET_LINK_LIBRARIES(${projectName} optimized ${QtitanRibbon_lib})
TARGET_LINK_LIBRARIES(${projectName} optimized ${Occt_lib})