@@ -7,15 +7,18 @@ include(DsdaDepsSetup)
7
7
8
8
project ("dsda-doom" VERSION 0.29.3)
9
9
10
- # Set a default build type if none was specified
11
- set (default_build_type "RelWithDebInfo" )
12
- if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES )
13
- message (STATUS "Setting build type to '${default_build_type} ' as none was specified." )
14
- set (CMAKE_BUILD_TYPE "${default_build_type} " CACHE
15
- STRING "Choose the type of build." FORCE)
16
- # Set the possible values of build type for cmake-gui
17
- set_property (CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
18
- "Debug" "Release" "MinSizeRel" "RelWithDebInfo" )
10
+ set (dsda_is_top_project FALSE )
11
+ if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR )
12
+ set (dsda_is_top_project TRUE )
13
+ endif ()
14
+
15
+ if (dsda_is_top_project)
16
+ include (DsdaSanitiser)
17
+ endif ()
18
+
19
+ include (DsdaHelpers)
20
+ if (dsda_is_top_project)
21
+ dsda_set_default_build_config(RelWithDebInfo)
19
22
endif ()
20
23
21
24
if (VCPKG_TOOLCHAIN)
@@ -28,77 +31,7 @@ set(PROJECT_STRING "${PROJECT_NAME} ${PROJECT_VERSION}")
28
31
29
32
include (DsdaOptions)
30
33
include (DsdaTargetFeatures)
31
-
32
- include (PkgConfigHelper)
33
-
34
- set (OpenGL_GL_PREFERENCE LEGACY)
35
- find_package (OpenGL 2.0 REQUIRED)
36
- find_package (libzip REQUIRED)
37
- find_package (SDL2 2.0.7 REQUIRED)
38
- find_package (SDL2_mixer REQUIRED)
39
- find_package (ZLIB REQUIRED)
40
- find_package (SndFile 1.0.29 REQUIRED)
41
-
42
- if (NOT TARGET SDL2_mixer::SDL2_mixer)
43
- add_library (SDL2_mixer::SDL2_mixer ALIAS SDL2_mixer::SDL2_mixer-static )
44
- endif ()
45
-
46
- if (SndFile_VERSION VERSION_GREATER_EQUAL "1.1.0" )
47
- set (HAVE_SNDFILE_MPEG TRUE )
48
- endif ()
49
-
50
- if (WITH_IMAGE)
51
- find_package (SDL2_image)
52
- if (SDL2_image_FOUND)
53
- set (HAVE_LIBSDL2_IMAGE TRUE )
54
- if (NOT TARGET SDL2_image::SDL2_image)
55
- add_library (SDL2_image::SDL2_image ALIAS SDL2_image::SDL2_image-static )
56
- endif ()
57
- endif ()
58
- endif ()
59
-
60
- if (WITH_MAD)
61
- find_package (LibMad)
62
- if (LibMad_FOUND)
63
- set (HAVE_LIBMAD TRUE )
64
- endif ()
65
- endif ()
66
-
67
- if (WITH_FLUIDSYNTH)
68
- find_package (FluidSynth)
69
- if (FluidSynth_FOUND)
70
- set (HAVE_LIBFLUIDSYNTH TRUE )
71
- endif ()
72
- endif ()
73
-
74
- if (WITH_XMP)
75
- find_package (libxmp)
76
- if (libxmp_FOUND)
77
- set (HAVE_LIBXMP TRUE )
78
- if (NOT TARGET libxmp::xmp)
79
- if (TARGET libxmp::xmp_shared)
80
- add_library (libxmp::xmp ALIAS libxmp::xmp_shared)
81
- else ()
82
- add_library (libxmp::xmp ALIAS libxmp::xmp_static)
83
- endif ()
84
- endif ()
85
- endif ()
86
- endif ()
87
-
88
- if (WITH_VORBISFILE)
89
- find_package (Vorbis COMPONENTS File)
90
- if (Vorbis_File_FOUND)
91
- set (HAVE_LIBVORBISFILE TRUE )
92
- endif ()
93
- endif ()
94
-
95
- if (WITH_PORTMIDI)
96
- find_package (PortMidi)
97
- if (PortMidi_FOUND)
98
- set (HAVE_LIBPORTMIDI TRUE )
99
- endif ()
100
- endif ()
101
-
34
+ include (DsdaDependencies)
102
35
include (DsdaConfigHeader)
103
36
104
37
set (DSDA_OUTPUT_PATH ${CMAKE_BINARY_DIR} )
@@ -147,91 +80,6 @@ install(FILES
147
80
DESTINATION "${DSDA_INSTALL_COPYRIGHT_DIR} "
148
81
)
149
82
150
- if (WIN32 )
151
- set (CPACK_GENERATOR ZIP)
152
- elseif (LINUX)
153
- set (CPACK_GENERATOR External)
154
- set (CPACK_EXTERNAL_ENABLE_STAGING YES )
155
- set (CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX} " )
156
- set (CPACK_EXTERNAL_PACKAGE_SCRIPT "${PROJECT_BINARY_DIR} /appimage-generate.cmake" )
157
-
158
- file (GENERATE
159
- OUTPUT "${PROJECT_BINARY_DIR} /appimage-generate.cmake"
160
- CONTENT [[
161
- find_program(LINUXDEPLOY_EXECUTABLE
162
- NAMES linuxdeploy linuxdeploy-x86_64.AppImage
163
- PATHS ${CPACK_PACKAGE_DIRECTORY}/linuxdeploy)
164
-
165
- if(NOT LINUXDEPLOY_EXECUTABLE)
166
- message(STATUS "Downloading linuxdeploy")
167
- set(LINUXDEPLOY_EXECUTABLE ${CPACK_PACKAGE_DIRECTORY}/linuxdeploy/linuxdeploy)
168
- file(DOWNLOAD
169
- https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
170
- ${LINUXDEPLOY_EXECUTABLE}
171
- INACTIVITY_TIMEOUT 10)
172
- execute_process(COMMAND
173
- chmod +x ${LINUXDEPLOY_EXECUTABLE} COMMAND_ECHO STDOUT)
174
- endif()
175
-
176
- execute_process(COMMAND
177
- ${CMAKE_COMMAND} -E env
178
- OUTPUT=${CPACK_PACKAGE_FILE_NAME}.appimage
179
- VERSION=$<IF:$<BOOL:${CPACK_PACKAGE_VERSION}>,${CPACK_PACKAGE_VERSION},0.1.0>
180
- ${LINUXDEPLOY_EXECUTABLE}
181
- --appimage-extract-and-run
182
- --appdir=${CPACK_TEMPORARY_DIRECTORY}
183
- --executable=$<TARGET_FILE:dsda-doom>
184
- --desktop-file=${CPACK_TEMPORARY_DIRECTORY}/${CPACK_PACKAGING_INSTALL_PREFIX}/share/applications/dsda-doom.desktop
185
- --icon-file=${CPACK_TEMPORARY_DIRECTORY}/${CPACK_PACKAGING_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps/dsda-doom.svg
186
- --output=appimage)
187
- ]])
188
- elseif (APPLE )
189
- set (CPACK_GENERATOR External)
190
- set (CPACK_EXTERNAL_ENABLE_STAGING YES )
191
- set (CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX} " )
192
- set (CPACK_EXTERNAL_PACKAGE_SCRIPT "${PROJECT_BINARY_DIR} /macbundle-generate.cmake" )
193
- set (CPACK_SYSTEM_NAME "mac-${CMAKE_SYSTEM_PROCESSOR} " )
194
- set (CPACK_SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR} " )
195
- set (CPACK_BUILD_DIR "${PROJECT_BINARY_DIR} " )
196
-
197
- file (GENERATE
198
- OUTPUT "${PROJECT_BINARY_DIR} /macbundle-generate.cmake"
199
- CONTENT [[
200
- set(CPACK_OUTPUT_DIR "${CPACK_BUILD_DIR}/${CPACK_PACKAGE_FILE_NAME}")
201
- file(MAKE_DIRECTORY ${CPACK_OUTPUT_DIR})
202
-
203
- find_program(DYLIBBUNDLER_EXECUTABLE NAMES dylibbundler)
204
- if(NOT DYLIBBUNDLER_EXECUTABLE)
205
- message(FATAL_ERROR "Missing dylibbundler (brew install dylibbundler)")
206
- endif()
207
-
208
- file(COPY_FILE
209
- $<TARGET_FILE:dsda-doom>
210
- ${CPACK_OUTPUT_DIR}/dsda-doom)
211
-
212
- execute_process(COMMAND
213
- ${CMAKE_COMMAND} -E env
214
- OUTPUT=${CPACK_PACKAGE_FILE_NAME}.zip
215
- VERSION=$<IF:$<BOOL:${CPACK_PACKAGE_VERSION}>,${CPACK_PACKAGE_VERSION},0.1.0>
216
- ${DYLIBBUNDLER_EXECUTABLE}
217
- --bundle-deps
218
- --create-dir
219
- --fix-file ${CPACK_OUTPUT_DIR}/dsda-doom
220
- --install-path @executable_path/libs_${CPACK_SYSTEM_PROCESSOR}
221
- --dest-dir ${CPACK_OUTPUT_DIR}/libs_${CPACK_SYSTEM_PROCESSOR})
222
-
223
- file(COPY_FILE
224
- ${CPACK_TEMPORARY_DIRECTORY}/${CPACK_PACKAGING_INSTALL_PREFIX}/share/games/doom/dsda-doom.wad
225
- ${CPACK_OUTPUT_DIR}/dsda-doom.wad)
226
- file(COPY_FILE
227
- ${CPACK_TEMPORARY_DIRECTORY}/${CPACK_PACKAGING_INSTALL_PREFIX}/share/doc/dsda-doom/COPYING
228
- ${CPACK_OUTPUT_DIR}/COPYING.txt)
229
-
230
- file(CONFIGURE
231
- OUTPUT ${CPACK_OUTPUT_DIR}/Troubleshooting.txt
232
- CONTENT "If you are getting errors like 'libzip.5.5.dylib cant be opened because Apple cannot check it for malicious software.' Run the following command in the dsda-doom folder:\n\nxattr -dr com.apple.quarantine path/to/folder")
233
-
234
- execute_process(COMMAND zip -r ${CPACK_PACKAGE_FILE_NAME}.zip ${CPACK_PACKAGE_FILE_NAME})
235
- ]])
83
+ if (ENABLE_PACKAGING)
84
+ add_subdirectory (packaging)
236
85
endif ()
237
- include (CPack)
0 commit comments