|
1 | | -cmake_minimum_required(VERSION 3.25) |
2 | | - |
3 | | -set(CMAKE_CXX_STANDARD 17) |
4 | | -set(CMAKE_CXX_STANDARD_REQUIRED On) |
5 | | - |
6 | | -project(Misstrhortion VERSION 1.0.0) |
7 | | - |
8 | | -add_subdirectory(dpf) |
9 | | - |
10 | | -set(JUCE_MODULES_ONLY ON) |
11 | | -add_subdirectory(JUCE) |
12 | | - |
13 | | -# musl builds fail without this |
14 | | -# see: https://forum.juce.com/t/compilation-issues-when-supporting-some-old-linux-platforms/32051 |
15 | | -# target_compile_definitions(juce_core |
16 | | -# INTERFACE |
17 | | -# _NL_IDENTIFICATION_LANGUAGE=0x42 |
18 | | -# _NL_IDENTIFICATION_TERRITORY=0x43) |
19 | | - |
20 | | -add_subdirectory(Source) |
21 | | - |
22 | | -target_include_directories(${PROJECT_NAME} |
23 | | - PUBLIC |
24 | | - JUCE/modules |
25 | | - DPF-Widgets/opengl) |
26 | | - |
27 | | -target_link_libraries(${PROJECT_NAME} |
28 | | - PRIVATE |
29 | | - juce_dsp) |
30 | | - |
31 | | -if(MINGW) |
32 | | - find_package(GLEW REQUIRED) |
33 | | - target_include_directories(${PROJECT_NAME} |
34 | | - PUBLIC |
35 | | - ${GLEW_INCLUDE_DIRS}/GL) |
36 | | - target_compile_definitions(${PROJECT_NAME} |
37 | | - PUBLIC |
38 | | - __MSYS__) |
39 | | - target_link_libraries(${PROJECT_NAME} |
40 | | - PUBLIC |
41 | | - comdlg32 |
42 | | - imm32 |
43 | | - ole32 |
44 | | - oleaut32 |
45 | | - rpcrt4 |
46 | | - shlwapi |
47 | | - uuid |
48 | | - version |
49 | | - wininet |
50 | | - winmm |
51 | | - ws2_32 |
52 | | - wsock32) |
53 | | -endif() |
54 | | - |
55 | | -include(GNUInstallDirs) |
56 | | -set(COMMON_FILES_PATH "C:\\\\Program Files\\\\Common Files") |
57 | | - |
58 | | -install( |
59 | | - TARGETS ${PROJECT_NAME}-jack |
60 | | - COMPONENT JACK |
61 | | - RUNTIME) |
62 | | - |
63 | | -install( |
64 | | - TARGETS ${PROJECT_NAME}-clap |
65 | | - DESTINATION $<IF:$<BOOL:${WIN32}>,CLAP,${CMAKE_INSTALL_LIBDIR}/clap> |
66 | | - COMPONENT CLAP |
67 | | - LIBRARY) |
68 | | -set(CPACK_NSIS_CLAP_INSTALL_DIRECTORY ${COMMON_FILES_PATH}) |
69 | | - |
70 | | -install( |
71 | | - TARGETS |
72 | | - ${PROJECT_NAME}-lv2 |
73 | | - ${PROJECT_NAME}-lv2-ui |
74 | | - DESTINATION $<IF:$<BOOL:${WIN32}>,LV2,${CMAKE_INSTALL_LIBDIR}/lv2> |
75 | | - COMPONENT LV2 |
76 | | - LIBRARY) |
77 | | -install( |
78 | | - FILES |
79 | | - ${CMAKE_BINARY_DIR}/bin/${PROJECT_NAME}.lv2/manifest.ttl |
80 | | - ${CMAKE_BINARY_DIR}/bin/${PROJECT_NAME}.lv2/${PROJECT_NAME}_dsp.ttl |
81 | | - ${CMAKE_BINARY_DIR}/bin/${PROJECT_NAME}.lv2/${PROJECT_NAME}_ui.ttl |
82 | | - DESTINATION $<IF:$<BOOL:${WIN32}>,LV2,${CMAKE_INSTALL_LIBDIR}/lv2> |
83 | | - COMPONENT LV2) |
84 | | -set(CPACK_NSIS_LV2_INSTALL_DIRECTORY ${COMMON_FILES_PATH}) |
85 | | - |
86 | | -install( |
87 | | - TARGETS ${PROJECT_NAME}-vst2 |
88 | | - DESTINATION $<IF:$<BOOL:${WIN32}>,VSTPlugins,${CMAKE_INSTALL_LIBDIR}/vst2> |
89 | | - COMPONENT VST2 |
90 | | - LIBRARY) |
91 | | -set(CPACK_NSIS_VST2_INSTALL_DIRECTORY "C:\\\\Program Files\\\\Steinberg") |
92 | | - |
93 | | -install( |
94 | | - TARGETS ${PROJECT_NAME}-vst3 |
95 | | - DESTINATION $<IF:$<BOOL:${WIN32}>,VST3,${CMAKE_INSTALL_LIBDIR}/vst3> |
96 | | - COMPONENT VST3 |
97 | | - LIBRARY) |
98 | | -set(CPACK_NSIS_VST3_INSTALL_DIRECTORY ${COMMON_FILES_PATH}) |
99 | | - |
100 | | -# HACK: JUCE always installs its own headers regardless of settings so we have |
101 | | -# to remove all unspecified components and add everything else manually. |
102 | | -get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS) |
103 | | -list(REMOVE_ITEM CPACK_COMPONENTS_ALL Unspecified) |
104 | | - |
105 | | -set(CPACK_PACKAGE_VENDOR bandithedoge) |
106 | | -set(CPACK_PACKAGE_CONTACT bandithedoge@protonmail.com) |
107 | | -set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME}) |
108 | | -set(CPACK_PACKAGE_EXECUTABLES ${PROJECT_NAME};${PROJECT_NAME}) |
109 | | - |
110 | | -include(InstallRequiredSystemLibraries) |
111 | | -include(CPack) |
112 | | - |
113 | | -cpack_add_component(JACK DISPLAY_NAME JACK/Standalone) |
114 | | -cpack_add_component(CLAP) |
115 | | -cpack_add_component(LV2) |
116 | | -cpack_add_component(VST2) |
117 | | -cpack_add_component(VST3) |
| 1 | +cmake_minimum_required(VERSION 3.25) |
| 2 | + |
| 3 | +set(CMAKE_CXX_STANDARD 17) |
| 4 | +set(CMAKE_CXX_STANDARD_REQUIRED On) |
| 5 | + |
| 6 | +project(Misstrhortion VERSION 1.0.0) |
| 7 | + |
| 8 | +add_subdirectory(dpf) |
| 9 | + |
| 10 | +set(JUCE_MODULES_ONLY ON) |
| 11 | +add_subdirectory(JUCE) |
| 12 | + |
| 13 | +# musl builds fail without this |
| 14 | +# see: https://forum.juce.com/t/compilation-issues-when-supporting-some-old-linux-platforms/32051 |
| 15 | +# target_compile_definitions(juce_core |
| 16 | +# INTERFACE |
| 17 | +# _NL_IDENTIFICATION_LANGUAGE=0x42 |
| 18 | +# _NL_IDENTIFICATION_TERRITORY=0x43) |
| 19 | + |
| 20 | +add_subdirectory(Source) |
| 21 | + |
| 22 | +target_include_directories(${PROJECT_NAME} |
| 23 | + PUBLIC |
| 24 | + JUCE/modules |
| 25 | + DPF-Widgets/opengl) |
| 26 | + |
| 27 | +target_link_libraries(${PROJECT_NAME} |
| 28 | + PRIVATE |
| 29 | + juce_dsp) |
| 30 | + |
| 31 | +if(MINGW) |
| 32 | + find_package(GLEW REQUIRED) |
| 33 | + target_include_directories(${PROJECT_NAME} |
| 34 | + PUBLIC |
| 35 | + ${GLEW_INCLUDE_DIRS}/GL) |
| 36 | + target_compile_definitions(${PROJECT_NAME} |
| 37 | + PUBLIC |
| 38 | + __MSYS__) |
| 39 | + target_link_libraries(${PROJECT_NAME} |
| 40 | + PUBLIC |
| 41 | + comdlg32 |
| 42 | + imm32 |
| 43 | + ole32 |
| 44 | + oleaut32 |
| 45 | + rpcrt4 |
| 46 | + shlwapi |
| 47 | + uuid |
| 48 | + version |
| 49 | + wininet |
| 50 | + winmm |
| 51 | + ws2_32 |
| 52 | + wsock32) |
| 53 | +endif() |
| 54 | + |
| 55 | +include(GNUInstallDirs) |
| 56 | +set(COMMON_FILES_PATH "C:\\\\Program Files\\\\Common Files") |
| 57 | + |
| 58 | +install( |
| 59 | + TARGETS ${PROJECT_NAME}-jack |
| 60 | + COMPONENT JACK |
| 61 | + RUNTIME) |
| 62 | + |
| 63 | +install( |
| 64 | + TARGETS ${PROJECT_NAME}-clap |
| 65 | + DESTINATION $<IF:$<BOOL:${WIN32}>,CLAP,${CMAKE_INSTALL_LIBDIR}/clap> |
| 66 | + COMPONENT CLAP |
| 67 | + LIBRARY) |
| 68 | +set(CPACK_NSIS_CLAP_INSTALL_DIRECTORY ${COMMON_FILES_PATH}) |
| 69 | + |
| 70 | +install( |
| 71 | + TARGETS |
| 72 | + ${PROJECT_NAME}-lv2 |
| 73 | + ${PROJECT_NAME}-lv2-ui |
| 74 | + DESTINATION $<IF:$<BOOL:${WIN32}>,LV2,${CMAKE_INSTALL_LIBDIR}/lv2> |
| 75 | + COMPONENT LV2 |
| 76 | + LIBRARY) |
| 77 | +install( |
| 78 | + FILES |
| 79 | + ${CMAKE_BINARY_DIR}/bin/${PROJECT_NAME}.lv2/manifest.ttl |
| 80 | + ${CMAKE_BINARY_DIR}/bin/${PROJECT_NAME}.lv2/${PROJECT_NAME}_dsp.ttl |
| 81 | + ${CMAKE_BINARY_DIR}/bin/${PROJECT_NAME}.lv2/${PROJECT_NAME}_ui.ttl |
| 82 | + DESTINATION $<IF:$<BOOL:${WIN32}>,LV2,${CMAKE_INSTALL_LIBDIR}/lv2> |
| 83 | + COMPONENT LV2) |
| 84 | +set(CPACK_NSIS_LV2_INSTALL_DIRECTORY ${COMMON_FILES_PATH}) |
| 85 | + |
| 86 | +install( |
| 87 | + TARGETS ${PROJECT_NAME}-vst2 |
| 88 | + DESTINATION $<IF:$<BOOL:${WIN32}>,VSTPlugins,${CMAKE_INSTALL_LIBDIR}/vst2> |
| 89 | + COMPONENT VST2 |
| 90 | + LIBRARY) |
| 91 | +set(CPACK_NSIS_VST2_INSTALL_DIRECTORY "C:\\\\Program Files\\\\Steinberg") |
| 92 | + |
| 93 | +install( |
| 94 | + TARGETS ${PROJECT_NAME}-vst3 |
| 95 | + DESTINATION $<IF:$<BOOL:${WIN32}>,VST3,${CMAKE_INSTALL_LIBDIR}/vst3> |
| 96 | + COMPONENT VST3 |
| 97 | + LIBRARY) |
| 98 | +set(CPACK_NSIS_VST3_INSTALL_DIRECTORY ${COMMON_FILES_PATH}) |
| 99 | + |
| 100 | +# HACK: JUCE always installs its own headers regardless of settings so we have |
| 101 | +# to remove all unspecified components and add everything else manually. |
| 102 | +get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS) |
| 103 | +list(REMOVE_ITEM CPACK_COMPONENTS_ALL Unspecified) |
| 104 | + |
| 105 | +set(CPACK_PACKAGE_VENDOR bandithedoge) |
| 106 | +set(CPACK_PACKAGE_CONTACT bandithedoge@protonmail.com) |
| 107 | +set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME}) |
| 108 | +set(CPACK_PACKAGE_EXECUTABLES ${PROJECT_NAME};${PROJECT_NAME}) |
| 109 | + |
| 110 | +include(InstallRequiredSystemLibraries) |
| 111 | +include(CPack) |
| 112 | + |
| 113 | +cpack_add_component(JACK DISPLAY_NAME JACK/Standalone) |
| 114 | +cpack_add_component(CLAP) |
| 115 | +cpack_add_component(LV2) |
| 116 | +cpack_add_component(VST2) |
| 117 | +cpack_add_component(VST3) |
0 commit comments