-
Notifications
You must be signed in to change notification settings - Fork 155
/
Copy pathCMakeLists.txt
74 lines (62 loc) · 3.13 KB
/
CMakeLists.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
cmake_minimum_required(VERSION 3.2)
set(APP_VERSION 1.0.2)
# 设置软件版本,同步git版本
if (NOT APP_VERSION)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
include(GetGitRevisionDescription)
git_describe(GitTagVersion --tags)
# 正则替换,提取版本号
string(REGEX REPLACE "^([0-9]+)//..*" "//1" VERSION_MAJOR "${GitTagVersion}")
string(REGEX REPLACE "^[0-9]+//.([0-9]+).*" "//1" VERSION_MINOR "${GitTagVersion}")
string(REGEX REPLACE "^[0-9]+//.[0-9]+//.([0-9]+).*" "//1" VERSION_PATCH "${GitTagVersion}")
set(VERSION_SHORT "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
else ()
string(REGEX MATCHALL "[/.]" VERSION_DOT_MATCHES ${APP_VERSION})
list(LENGTH VERSION_DOT_MATCHES VERSION_DOT_COUNT)
if (VERSION_DOT_COUNT EQUAL 2)
set(VERSION_SHORT ${APP_VERSION})
else ()
message(FATAL_ERROR "APP_VERSION must be in major.minor.patch format, e.g. 3.8.1. Got ${APP_VERSION}")
endif ()
endif ()
# 应用名称
project(VersaDebugAssistantProject LANGUAGES CXX VERSION ${VERSION_SHORT})
find_package(Qt5 COMPONENTS Core REQUIRED)
set(APP_CMAKE_SUB_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(AppOutputDir "build_out")
set(QT_VERSION "${Qt5_VERSION}")
set(QT_VERSION_MAJOR "${Qt5_VERSION_MAJOR}")
set(VersaAssistantName "VersaAssistant")
set(VersaAssistantVersion "${VERSION_SHORT}")
set(VersaAssistantApp "${VersaAssistantName}-${VersaAssistantVersion}")
set(LIB_NAME_ADS "qt${QT_VERSION_MAJOR}advanceddocking")
set(LIB_NAME_FREEGULT "freeglut")
set(LIB_NAME_ASSIMP "assimp")
set(LIB_NAME_LIBUSB "libusb")
option(BUILD_ADS_STATIC "Build the ads static library" OFF)
option(BUILD_QMATERIAL_STATIC "Build the material static library" OFF)
option(BUILD_EXAMPLES "Build the examples" ON)
if ("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4")
set(CMAKE_PREFIX_PATH "D:/SoftwareTools/Qt/Qt5.14.2/5.14.2/mingw73_32")
set(PATH "D:/SoftwareTools/Qt/Qt5.14.2/5.14.2/mingw73_32/bin")
set(PlatformDir "../platform/x86")
set(LibusbPath "${CMAKE_CURRENT_SOURCE_DIR}/VersaAssistant/VersaCommunication/VersaLibusb/libusb/libusb-MinGW-Win32")
set(BuildPlatfor "MinGW-x86")
set(OpenSSL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/OpenSSL/Win32/")
else ()
set(CMAKE_PREFIX_PATH "D:/SoftwareTools/Qt/Qt5.14.2/5.14.2/mingw73_64")
set(PATH "D:/SoftwareTools/Qt/Qt5.14.2/5.14.2/mingw73_64/bin")
set(PlatformDir "../platform/x64")
set(LibusbPath "${CMAKE_CURRENT_SOURCE_DIR}/VersaAssistant/VersaCommunication/VersaLibusb/libusb/libusb-MinGW-x64")
set(BuildPlatfor "MinGW-x64")
set(OpenSSL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/OpenSSL/Win64/")
endif ()
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${PlatformDir}/lib")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${PlatformDir}/lib")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${PlatformDir}/bin")
file(COPY "${LibusbPath}/bin/" DESTINATION "${CMAKE_BINARY_DIR}/${PlatformDir}/bin/")
file(COPY "${LibusbPath}/lib/" DESTINATION "${CMAKE_BINARY_DIR}/${PlatformDir}/lib/")
add_subdirectory(assimp)
add_subdirectory(QtAdvancedDocking)
add_subdirectory(freeglut)
add_subdirectory(VersaAssistant)