diff --git a/.github/workflows/all-builds.yml b/.github/workflows/all-builds.yml index 5b128d7..160edf8 100644 --- a/.github/workflows/all-builds.yml +++ b/.github/workflows/all-builds.yml @@ -40,34 +40,36 @@ jobs: cmake -B build/ ${{ matrix.cmake }} -DQTK_UPDATE_SUBMODULES=ON cmake --build build/ - - name: Package Qtk - shell: bash - run: | - cmake --build build/ --target package - - - name: Package Qtk Sources - if: matrix.os != 'macos-latest' - shell: bash - run: | - cmake --build build/ --target package_source - - - uses: actions/upload-artifact@v3 - with: - name: qtk-packages-${{ matrix.os }} - path: | - build/packages/ - !build/packages/_CPack_Packages/* - - name: Install Qtk shell: bash run: | cmake --install build/ - uses: actions/upload-artifact@v3 + if: always() with: name: qtk-${{ matrix.os }} path: install/* + - name: Package Qtk + shell: bash + run: | + cmake --build build/ --target package + +# - name: Package Qtk Sources +# if: matrix.os != 'macos-latest' +# shell: bash +# run: | +# cmake --build build/ --target package_source + + - uses: actions/upload-artifact@v3 + if: always() + with: + name: qtk-packages-${{ matrix.os }} + path: | + build/packages/ + !build/packages/_CPack_Packages/* + Build-Qtk-Assimp-Targets: strategy: fail-fast: false @@ -103,7 +105,7 @@ jobs: - name: Build Qtk shell: bash run: | - cmake -B build/ ${{ matrix.cmake }} && cmake --build build/ --target qtk-main + cmake -B build/ ${{ matrix.cmake }} && cmake --build build/ # TODO: Enable with tag only when done testing # Release-Qtk: diff --git a/CMakeLists.txt b/CMakeLists.txt index 0c90189..a9e90ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,10 +22,13 @@ set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(CMAKE_MACOSX_BUNDLE ON) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) if(MSVC) - add_compile_options(/WX:NO /wd4131 /wd4127) + set(CMAKE_COMPILE_WARNING_AS_ERROR OFF) + add_compile_options(-warnnotaserror) + add_compile_options(/wd4131 /wd4127) endif() ################################################################################ @@ -84,6 +87,7 @@ if (QTK_PREFIX_QTCREATOR) endif() message(STATUS "[Qtk] CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}") set(QTK_RESOURCES "${CMAKE_SOURCE_DIR}/resources") +set(QTK_OSX_ICONS ${CMAKE_SOURCE_DIR}/resources/icons/osx/kilroy.icns) # Print all QTK options and their values. get_cmake_property(VAR_NAMES VARIABLES) @@ -112,9 +116,9 @@ if(NOT Qt6_FOUND) endif() # Find Assimp +set(ASSIMP_BUILD_TESTS OFF) if(QTK_UPDATE_SUBMODULES) message(STATUS "[Qtk] Updating submodules...") - set(ASSIMP_BUILD_TESTS OFF) set(ASSIMP_INSTALL OFF) submodule_update("${CMAKE_CURRENT_SOURCE_DIR}/extern/assimp/assimp/") add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/extern/assimp/assimp/") diff --git a/resources/icons/osx/README.md b/resources/icons/osx/README.md new file mode 100644 index 0000000..7309721 --- /dev/null +++ b/resources/icons/osx/README.md @@ -0,0 +1,13 @@ + +```bash +sudo apt install icnsutils +``` + +```bash +convert icon.png -resize 32x32 kilroy_32.png +convert icon.png -resize 16x16 kilroy_16.png +convert icon.png -resize 48x48 kilroy_48.png +convert icon.png -resize 128x128 kilroy_128.png +convert icon.png -resize 256x256 kilroy_256.png +png2icns png2icns kilroy.icns kilroy_*.png +``` diff --git a/resources/icons/osx/kilroy.icns b/resources/icons/osx/kilroy.icns new file mode 100644 index 0000000..55d8cd4 Binary files /dev/null and b/resources/icons/osx/kilroy.icns differ diff --git a/resources/icons/osx/kilroy_128.png b/resources/icons/osx/kilroy_128.png new file mode 100644 index 0000000..cdb2fbf Binary files /dev/null and b/resources/icons/osx/kilroy_128.png differ diff --git a/resources/icons/osx/kilroy_16.png b/resources/icons/osx/kilroy_16.png new file mode 100644 index 0000000..8427cf0 Binary files /dev/null and b/resources/icons/osx/kilroy_16.png differ diff --git a/resources/icons/osx/kilroy_256.png b/resources/icons/osx/kilroy_256.png new file mode 100644 index 0000000..a189b32 Binary files /dev/null and b/resources/icons/osx/kilroy_256.png differ diff --git a/resources/icons/osx/kilroy_32.png b/resources/icons/osx/kilroy_32.png new file mode 100644 index 0000000..d074fe6 Binary files /dev/null and b/resources/icons/osx/kilroy_32.png differ diff --git a/resources/icons/osx/kilroy_48.png b/resources/icons/osx/kilroy_48.png new file mode 100644 index 0000000..17e6312 Binary files /dev/null and b/resources/icons/osx/kilroy_48.png differ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2cc3a18..27f402a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -46,8 +46,8 @@ set(CPACK_PACKAGE_DIRECTORY packages/) # OSX set(CPACK_BUNDLE_NAME Qtk) -#set(CPACK_BUNDLE_PLIST ) -#set(CPACK_BUNDLE_ICON ) +set(CPACK_BUNDLE_PLIST ${CMAKE_BINARY_DIR}/qtk_main.app/Contents/Info.plist) +set(CPACK_BUNDLE_ICON ${QTK_OSX_ICONS}) if(WIN32) set(CPACK_SOURCE_GENERATOR ZIP) else() diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 369c31e..82661d5 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -91,6 +91,11 @@ set_target_properties( qtk_main PROPERTIES WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE + MACOSX_BUNDLE_BUNDLE_NAME Qtk + MACOSX_BUNDLE_ICON_FILE ${QTK_OSX_ICONS} + MACOSX_BUNDLE_GUI_IDENTIFIER ${CMAKE_PROJECT_NAME} + MACOSX_BUNDLE_INFO_STRING ${CMAKE_PROJECT_DESCRIPTION} + MACOSX_BUNDLE_COPYRIGHT "All Content (c) 2023 Shaun Reed, all rights reserved" MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )