-
Notifications
You must be signed in to change notification settings - Fork 55
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
91 lines (82 loc) · 2.83 KB
/
CMakeLists.txt
File metadata and controls
91 lines (82 loc) · 2.83 KB
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
add_subdirectory(notifications)
add_subdirectory(gui)
set(PROJECTM_CONFIGURATION_FILE "${CMAKE_CURRENT_BINARY_DIR}/projectMSDL.properties")
set(PROJECTM_CONFIGURATION_FILE "${PROJECTM_CONFIGURATION_FILE}" PARENT_SCOPE)
configure_file(resources/projectMSDL.properties.in "${PROJECTM_CONFIGURATION_FILE}" @ONLY)
add_executable(projectMSDL WIN32 MACOSX_BUNDLE
AudioCapture.cpp
AudioCapture.h
FPSLimiter.cpp
FPSLimiter.h
ProjectMSDLApplication.cpp
ProjectMSDLApplication.h
ProjectMWrapper.cpp
ProjectMWrapper.h
RenderLoop.cpp
RenderLoop.h
SDLRenderingWindow.cpp
SDLRenderingWindow.h
main.cpp
projectMSDL.rc
)
string(TIMESTAMP BUILD_YEAR "%Y" UTC)
set_target_properties(projectMSDL PROPERTIES
OUTPUT_NAME "$<IF:$<PLATFORM_ID:Darwin>,projectM,projectMSDL>" # On macOS, we name the app bundle just "projectM"
MACOSX_BUNDLE_BUNDLE_NAME "projectM"
MACOSX_BUNDLE_BUNDLE_VERSION "${projectMSDL_VERSION}"
MACOSX_BUNDLE_COPYRIGHT "Copyright © ${BUILD_YEAR} The projectM team and contributors"
MACOSX_BUNDLE_GUI_IDENTIFIER "org.projectm.frontend.sdl2"
MACOSX_BUNDLE_ICON_FILE "projectMSDL.icns"
MACOSX_BUNDLE_SHORT_VERSION_STRING "${projectMSDL_VERSION}"
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/resources/Info.plist.in"
)
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
target_sources(projectMSDL
PRIVATE
AudioCaptureImpl_WASAPI.h
AudioCaptureImpl_WASAPI.cpp
)
target_compile_definitions(projectMSDL
PRIVATE
AUDIO_IMPL_HEADER="AudioCaptureImpl_WASAPI.h"
)
else ()
target_sources(projectMSDL
PRIVATE
AudioCaptureImpl_SDL.h
AudioCaptureImpl_SDL.cpp
)
target_compile_definitions(projectMSDL
PRIVATE
AUDIO_IMPL_HEADER="AudioCaptureImpl_SDL.h"
)
endif ()
# GLEW needs to be initialized if libprojectM depends on it.
if (TARGET GLEW::glew OR TARGET GLEW::glew_s)
target_compile_definitions(projectMSDL
PRIVATE
USE_GLEW
)
endif ()
set_source_files_properties(ProjectMSDLApplication.cpp PROPERTIES
COMPILE_DEFINITIONS PROJECTMSDL_CONFIG_LOCATION=\"${DEFAULT_CONFIG_PATH}\"
)
target_compile_definitions(projectMSDL
PRIVATE
PROJECTMSDL_VERSION="${PROJECT_VERSION}"
)
target_link_libraries(projectMSDL
PRIVATE
ProjectMSDL-GUI
ProjectMSDL-Notifications
libprojectM::playlist
Poco::Util
SDL2::SDL2$<$<STREQUAL:${SDL2_LINKAGE},static>:-static>
SDL2::SDL2main
)
if (MSVC)
set_target_properties(projectMSDL
PROPERTIES
VS_DPI_AWARE "PerMonitor"
)
endif ()