Skip to content

Commit e78e27d

Browse files
committed
feat: add multi-platform CI/CD with manual release testing
- Add build matrix for ubuntu-22.04, macos-latest, windows-latest - Configure MSVC with Ninja on Windows for build and release workflows - Add workflow_dispatch trigger with version input for testing releases - Use CPack components to conditionally include docs in TGZ vs DEB - Set proper install prefixes and package naming conventions
1 parent 1c16143 commit e78e27d

File tree

2 files changed

+28
-8
lines changed

2 files changed

+28
-8
lines changed

CMakeLists.txt

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,13 @@ endif()
140140
add_subdirectory(src/app)
141141
add_subdirectory(test)
142142

143+
if(LINUX)
144+
install(FILES README.md LICENSE.txt docs/manual.md
145+
DESTINATION "${CMAKE_INSTALL_DATADIR}/retuner")
146+
endif()
147+
143148
# CPack configuration
149+
144150
set(CPACK_PACKAGE_NAME "reTuner")
145151
set(CPACK_PACKAGE_VENDOR "Kushview")
146152
set(CPACK_PACKAGE_CONTACT "Kushview Support <[email protected]>")
@@ -154,20 +160,32 @@ set(CPACK_RESOURCE_FILE_README "${PROJECT_SOURCE_DIR}/INSTALLER.txt")
154160
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.txt")
155161

156162
if(LINUX)
157-
set(CPACK_GENERATOR "TGZ;STGZ;DEB")
163+
set(RETUNER_SYSTEM_NAME "linux")
164+
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" RETUNER_PROCESSOR)
165+
set(CPACK_GENERATOR "TGZ;DEB")
158166
set(CPACK_ARCHIVE_COMPONENT_INSTALL OFF)
159-
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
167+
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
160168
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libasound2;libfreetype6;libx11-6;libxext6;libxrandr2;libxinerama1;libxcursor1;libcurl4;libgl1;libstdc++6")
161169
elseif(APPLE)
170+
set(RETUNER_SYSTEM_NAME "macos")
171+
set(RETUNER_PROCESSOR "universal")
162172
set(CPACK_GENERATOR "ZIP")
163173
set(CPACK_ARCHIVE_COMPONENT_INSTALL OFF)
164174
set(CPACK_SET_DESTDIR OFF)
165175
set(CPACK_PACKAGING_INSTALL_PREFIX "/")
166-
else()
176+
install(FILES README.md LICENSE.txt docs/manual.md
177+
DESTINATION "${CMAKE_INSTALL_PREFIX}")
178+
elseif(WIN32)
179+
set(RETUNER_SYSTEM_NAME "windows")
180+
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" RETUNER_PROCESSOR)
181+
set(CPACK_IGNORE_FILES ".*\\.lib$;.*\\.exp$;.*\\.ico$")
167182
set(CPACK_GENERATOR "ZIP")
168183
set(CPACK_ARCHIVE_COMPONENT_INSTALL OFF)
169184
set(CPACK_PACKAGING_INSTALL_PREFIX "/")
185+
install(FILES README.md LICENSE.txt docs/manual.md
186+
DESTINATION "${CMAKE_INSTALL_PREFIX}")
170187
endif()
171188

172-
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
189+
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${CPACK_PACKAGE_VERSION}-${RETUNER_SYSTEM_NAME}-${RETUNER_PROCESSOR}")
173190
include(CPack)
191+

src/app/CMakeLists.txt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,12 @@ target_compile_definitions(reTunerApp PRIVATE
5959
${RETUNER_JUCE_OPTIONS}
6060
)
6161

62-
set_target_properties(reTunerApp PROPERTIES
63-
OUTPUT_NAME "reTuner"
64-
FOLDER "Applications"
65-
)
62+
if(LINUX)
63+
# Linux conventions want all lowercase executable names
64+
set_target_properties(reTunerApp PROPERTIES
65+
OUTPUT_NAME "retuner"
66+
)
67+
endif()
6668

6769
if(NOT APPLE)
6870
install(TARGETS reTunerApp DESTINATION ${CMAKE_INSTALL_BINDIR})

0 commit comments

Comments
 (0)