-
-
Notifications
You must be signed in to change notification settings - Fork 96
/
Copy pathCMakeLists.txt
143 lines (124 loc) · 4.37 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
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
cmake_minimum_required(VERSION 3.16.0 FATAL_ERROR)
set(CMAKE_SYSTEM_VERSION 10.0 CACHE STRING "" FORCE)
set(CMAKE_TOOLCHAIN_FILE
"$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
)
if(WIN32)
set(VCPKG_TARGET_TRIPLET
"x64-windows-static-md"
CACHE STRING "")
endif()
message ("VCPKG_TARGET_TRIPLET: " ${VCPKG_TARGET_TRIPLET})
# Require C++20 and disable extensions for all targets.
# NOTE: See further below for how to do this more robustly.
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
project(DeepSkyStacker VERSION 6.1.0 LANGUAGES C CXX)
message ("System Name is: " ${CMAKE_SYSTEM_NAME})
message ("Prefix path: " ${CMAKE_PREFIX_PATH})
#
# Report platform name if specified
#
if(NOT CMAKE_VS_PLATFORM_NAME)
message("CMAKE_VS_PLATFORM_NAME not specified")
if (APPLE)
set(CMAKE_VS_PLATFORM_NAME "arm64")
else()
set(CMAKE_VS_PLATFORM_NAME "x64")
endif()
endif()
message("CMAKE_VS_PLATFORM_NAME set to: " ${CMAKE_VS_PLATFORM_NAME})
#
# install to DSS/x64 for Windows, and DSS/platform/x64 for other platforms
#
if(NOT CMAKE_BUILD_TYPE)
message ("Build type was not set, setting it to: Debug")
set(CMAKE_BUILD_TYPE "Debug")
endif()
message ("CMAKE_SOURCE_DIR: " ${CMAKE_SOURCE_DIR})
message ("CMAKE_VS_PLATFORM_NAME: " ${CMAKE_VS_PLATFORM_NAME})
message ("CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE})
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
if(NOT WIN32)
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/${CMAKE_VS_PLATFORM_NAME}/${CMAKE_SYSTEM_NAME}/${CMAKE_BUILD_TYPE}/${CMAKE_VS_PLATFORM_NAME} CACHE STRING "" FORCE)
else()
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/${CMAKE_VS_PLATFORM_NAME}/${CMAKE_BUILD_TYPE} CACHE STRING "" FORCE)
endif()
endif()
message ("CMAKE_INSTALL_PREFIX: " ${CMAKE_INSTALL_PREFIX})
set(CMAKE_INSTALL_BINDIR "." CACHE STRING "" FORCE)
set(CMAKE_INSTALL_LIBDIR "." CACHE STRING "" FORCE)
set(CMAKE_INSTALL_LIBEXECDIR "." CACHE STRING "" FORCE)
set(CMAKE_INSTALL_PLUGINSDIR "." CACHE STRING "" FORCE)
find_package(Qt6 6.8.2 REQUIRED COMPONENTS Core Gui Widgets Network Charts DBus OpenGLWidgets LinguistTools)
#set(CMAKE_FIND_DEBUG_MODE 1)
#
# Non-Windows use find_package to find stuff we want
#
#set(cfitsio_DIR "/usr/local/lib/cfitsio-4.5.0/")
find_package(cfitsio 4.5.0 REQUIRED)
find_package(boost_container CONFIG REQUIRED)
find_package(boost_interprocess CONFIG REQUIRED)
if (APPLE)
find_package(Iconv REQUIRED)
find_package(CURL REQUIRED)
endif()
find_package(exiv2 CONFIG REQUIRED)
find_package(expat CONFIG REQUIRED)
find_package(TIFF 4.7 REQUIRED)
find_package(libraw CONFIG REQUIRED)
if(NOT WIN32)
find_package(OpenMP REQUIRED)
find_package (Threads REQUIRED)
endif()
find_package(ZLIB REQUIRED)
set(CMAKE_AUTOUIC_SEARCH_PATHS
"./ui"
CACHE STRING "" FORCE
)
if(APPLE)
include_directories(SYSTEM /usr/local/include)
endif()
################################################################################
# Global configuration types
################################################################################
set(CMAKE_CONFIGURATION_TYPES
"Debug"
"Release"
CACHE STRING "" FORCE
)
if(WIN32)
set(CMAKE_CXX_FLAGS "/GR /EHsc")
endif()
if (APPLE)
set(CMAKE_CXX_FLAGS "-Wno-switch-enum -Wno-switch")
endif()
if(LINUX)
set(CMAKE_CXX_FLAGS "-Wno-ignored-attributes -msse -msse2 -mfpmath=sse -pthread")
endif()
#[=[
################################################################################
# Common utils
################################################################################
include(CMake/Utils.cmake)
################################################################################
# Additional Global Settings(add specific info there)
################################################################################
include(CMake/GlobalSettingsInclude.cmake OPTIONAL)
]=]
################################################################################
# Use solution folders feature
################################################################################
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
################################################################################
# Sub-projects
################################################################################
add_subdirectory(DeepSkyStackerKernel)
add_subdirectory(ZClass)
add_subdirectory(DeepSkyStacker)
add_subdirectory(DeepSkyStackerCL)
add_subdirectory(DeepSkyStackerLive)
#[=[
add_subdirectory(DeepSkyStackerTest)
]=]