diff --git a/.github/workflows/all-builds.yml b/.github/workflows/all-builds.yml index efacc92..d501c09 100644 --- a/.github/workflows/all-builds.yml +++ b/.github/workflows/all-builds.yml @@ -10,14 +10,15 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest] +# os: [ubuntu-latest, windows-latest, macos-latest] include: - os: ubuntu-latest cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.3.1/gcc_64/" - - os: windows-latest - cmake: -DCMAKE_PREFIX_PATH="D:/a/qtk/qtk/Qt/6.3.1/mingw81_64/" - - os: macos-latest - cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.3.1/gcc_64/" +# - os: windows-latest +# cmake: -DCMAKE_PREFIX_PATH="D:/a/qtk/qtk/Qt/6.3.1/mingw81_64/" +# - os: macos-latest +# cmake: -DCMAKE_PREFIX_PATH="/home/runner/work/qtk/Qt/6.3.1/gcc_64/" runs-on: ${{ matrix.os }} steps: @@ -37,8 +38,30 @@ jobs: - name: Build Qtk shell: bash run: | - cmake -S . -B build/ ${{ matrix.cmake }} -DQTK_UPDATE_SUBMODULES=ON && cmake --build build/ \ - --target qtk-main + cmake -B build/ ${{ matrix.cmake }} -DQTK_UPDATE_SUBMODULES=ON + cmake --build build/ + + - name: Package libqtk + shell: bash + run: | + cmake --build build/ --target package + +# - name: Package Qtk Sources +# 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/* + + - uses: actions/upload-artifact@v3 + with: + name: qtk-${{ matrix.os }} + path: build/bin Build-Qtk-Assimp-Targets: strategy: @@ -75,5 +98,50 @@ jobs: - name: Build Qtk shell: bash run: | - cmake -S . -B build/ ${{ matrix.cmake }} && cmake --build build/ \ - --target qtk-main + cmake -B build/ ${{ matrix.cmake }} && cmake --build build/ --target qtk-main + + # TODO: Enable with tag only when done testing + Release-Qtk: + needs: Build-Qtk + if: "always()" + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + include: + - os: ubuntu-latest + cqt: CQtDeployer.run + url: https://github.com/QuasarApp/CQtDeployer/releases/download/v1.6.2277/CQtDeployer_1.6.2277.ecc6eed_Linux_x86_64.run + qmake: /home/runner/work/qtk/Qt/6.3.1/gcc_64/bin/qmake + - os: windows-latest + cqt: CQtDeployer.exe + url: https://github.com/QuasarApp/CQtDeployer/releases/download/v1.6.2277/CQtDeployer_1.6.2277.ecc6eed_Windows_AMD64.exe + qmake: D:/a/qtk/qtk/Qt/6.3.1/mingw81_64/bin/qmake + - os: macos-latest + cqt: CQtDeployer.run + url: https://github.com/QuasarApp/CQtDeployer/releases/download/v1.6.2277/CQtDeployer_1.6.2277.ecc6eed_Linux_x86_64.run + qmake: /home/runner/work/qtk/Qt/6.3.1/gcc_64/bin/qmake + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/download-artifact@v3 + with: + name: qtk-${{ matrix.os }} + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: '6.3.1' + + - name: Package Qtk + shell: bash + run: | + wget -O ${{ matrix.cqt }} ${{ matrix.url }} + chmod +x ${{ matrix.cqt }} + ./${{ matrix.cqt }} install -c --aa 1613=Ignore + cqtdeployer -bin qtk-main -qmake ${{ matrix.qmake }} + + - uses: actions/upload-artifact@v3 + with: + name: qtk-installer-${{ matrix.os }} + path: DistributionKit/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 814ddcd..8ebbe8f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -127,37 +127,3 @@ endif() # Qtk ################################################################################ add_subdirectory(src) - -if(WIN32) - get_target_property(_qt6_qmake_location Qt6::qmake IMPORTED_LOCATION) - execute_process( - COMMAND "${_qt6_qmake_location}" -query QT_INSTALL_PREFIX - RESULT_VARIABLE return_code - OUTPUT_VARIABLE qt6_install_prefix - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - file(TO_NATIVE_PATH "${qt6_install_prefix}/bin" qt6_install_prefix) - - if(TARGET Qt6::windeployqt) - add_custom_command( - TARGET qtk-main - POST_BUILD - COMMAND set PATH=%PATH%$${qt6_install_prefix} - COMMAND Qt6::windeployqt --dir "${CMAKE_BINARY_DIR}/windeployqt" "$/$" - ) - install(DIRECTORY "${CMAKE_BINARY_DIR}/windeployqt/" DESTINATION bin) - endif() - - if(MSVC AND TARGET Qt6::qmake) - set(VSUSER_FILE "${CMAKE_CURRENT_BINARY_DIR}/qtk-main.vcxproj.user") - file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/extern/assimp/assimp/bin" assimp_bin) - file(WRITE ${VSUSER_FILE} "\n") - file(APPEND ${VSUSER_FILE} "\n") - file(APPEND ${VSUSER_FILE} " \n") - file(APPEND ${VSUSER_FILE} " Path=$(SolutionDir)\\lib\\$(Configuration);${qt6_install_prefix};${assimp_bin};$(Path)\n") - file(APPEND ${VSUSER_FILE} "$(LocalDebuggerEnvironment)\n") - file(APPEND ${VSUSER_FILE} " WindowsLocalDebugger\n") - file(APPEND ${VSUSER_FILE} " \n") - file(APPEND ${VSUSER_FILE} "\n") - endif() -endif() diff --git a/resources/screenshot.png b/resources/screenshot.png index d8729df..2802538 100644 Binary files a/resources/screenshot.png and b/resources/screenshot.png differ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d0bc7a2..cdda65c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -41,4 +41,6 @@ set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}") set(CPACK_PACKAGE_VENDOR "Shaun Reed") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Qt OpenGL 3D graphics library.") set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/shaunrd0/qtk") +set(CPACK_SOURCE_IGNORE_FILES build;install;\.git;\.github;\.idea) +set(CPACK_PACKAGE_DIRECTORY packages/) include(CPack) diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 4b7df6a..4fe712d 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -96,9 +96,36 @@ set_target_properties( MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) -install( - TARGETS qtk-main - BUNDLE DESTINATION bin - RUNTIME DESTINATION bin - LIBRARY DESTINATION bin/lib -) +if(WIN32) + get_target_property(_qt6_qmake_location Qt6::qmake IMPORTED_LOCATION) + execute_process( + COMMAND "${_qt6_qmake_location}" -query QT_INSTALL_PREFIX + RESULT_VARIABLE return_code + OUTPUT_VARIABLE qt6_install_prefix + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + file(TO_NATIVE_PATH "${qt6_install_prefix}/bin" qt6_install_prefix) + + if(TARGET Qt6::windeployqt) + add_custom_command( + TARGET qtk-main + POST_BUILD + COMMAND set PATH=%PATH%$${qt6_install_prefix} + COMMAND Qt6::windeployqt --dir "${CMAKE_BINARY_DIR}/windeployqt" "$/$" + ) + install(DIRECTORY "${CMAKE_BINARY_DIR}/windeployqt/" DESTINATION bin) + endif() + + if(MSVC AND TARGET Qt6::qmake) + set(VSUSER_FILE "${CMAKE_CURRENT_BINARY_DIR}/qtk-main.vcxproj.user") + file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/extern/assimp/assimp/bin" assimp_bin) + file(WRITE ${VSUSER_FILE} "\n") + file(APPEND ${VSUSER_FILE} "\n") + file(APPEND ${VSUSER_FILE} " \n") + file(APPEND ${VSUSER_FILE} " Path=$(SolutionDir)\\lib\\$(Configuration);${qt6_install_prefix};${assimp_bin};$(Path)\n") + file(APPEND ${VSUSER_FILE} "$(LocalDebuggerEnvironment)\n") + file(APPEND ${VSUSER_FILE} " WindowsLocalDebugger\n") + file(APPEND ${VSUSER_FILE} " \n") + file(APPEND ${VSUSER_FILE} "\n") + endif() +endif() diff --git a/src/app/qtkmainwindow.cpp b/src/app/qtkmainwindow.cpp index cea68eb..f36a328 100644 --- a/src/app/qtkmainwindow.cpp +++ b/src/app/qtkmainwindow.cpp @@ -6,8 +6,8 @@ ## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ## ##############################################################################*/ -#include "examplescene.h" #include "qtkmainwindow.h" +#include "examplescene.h" #include "ui_qtkmainwindow.h" MainWindow * MainWindow::mainWindow_ = Q_NULLPTR; diff --git a/src/qtk/qtkapi.h b/src/qtk/qtkapi.h index ab4cb60..15a74c3 100644 --- a/src/qtk/qtkapi.h +++ b/src/qtk/qtkapi.h @@ -27,7 +27,9 @@ * This cannot be defined within any namespace, but can be called by ctors. * See object.h for example. */ -inline void initResources() { Q_INIT_RESOURCE(resources); } +inline void initResources() { + Q_INIT_RESOURCE(resources); +} namespace Qtk { /**