diff --git a/.github/scripts/build.sh b/.github/scripts/build.sh index 35fee629..ee4ad815 100755 --- a/.github/scripts/build.sh +++ b/.github/scripts/build.sh @@ -17,9 +17,8 @@ echo "Compile Hyperion on '${RUNNER_OS}' with build type '${BUILD_TYPE}' and pla # Build the package on MacOS, Windows or Linux if [[ "$RUNNER_OS" == 'macOS' ]]; then mkdir build || exit 1 - cd build - cmake -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ../ || exit 2 - make -j $(sysctl -n hw.ncpu) package || exit 3 + cmake -B build -G Ninja -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH=/usr/local || exit 2 + cmake --build build --target package --parallel $(sysctl -n hw.ncpu) || exit 3 cd ${GITHUB_WORKSPACE} && source /${GITHUB_WORKSPACE}/test/testrunner.sh || exit 4 exit 0; exit 1 || { echo "---> Hyperion compilation failed! Abort"; exit 5; } diff --git a/.github/workflows/qt5_6.yml b/.github/workflows/qt5_6.yml index 25f3c3af..9eddeaaf 100644 --- a/.github/workflows/qt5_6.yml +++ b/.github/workflows/qt5_6.yml @@ -117,7 +117,7 @@ jobs: echo '::group::Update/Install dependencies' brew untap --force homebrew/core homebrew/cask brew update || true - brew install qt${{ inputs.qt_version }} vulkan-headers || true + brew install qt${{ inputs.qt_version }} vulkan-headers ninja || true echo '::endgroup::' - name: 👷 Build diff --git a/dependencies/CMakeLists.txt b/dependencies/CMakeLists.txt index 2669448d..c12edca9 100644 --- a/dependencies/CMakeLists.txt +++ b/dependencies/CMakeLists.txt @@ -21,46 +21,40 @@ endif() if (ENABLE_MDNS) set(USE_SYSTEM_QMDNS_LIBS ${DEFAULT_USE_SYSTEM_QMDNS_LIBS} CACHE BOOL "use qmdnsengine library from system") - if (USE_SYSTEM_QMDNS_LIBS) + if(USE_SYSTEM_QMDNS_LIBS) find_package(qmdnsengine REQUIRED) - else () - if(WIN32) - set(QMDNS_LIBRARIES ${CMAKE_BINARY_DIR}/lib/qmdnsengine${CMAKE_STATIC_LIBRARY_SUFFIX}) - else() - set(QMDNS_LIBRARIES ${CMAKE_BINARY_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}qmdnsengine${CMAKE_STATIC_LIBRARY_SUFFIX}) - endif() - - get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) - set(QMDNS_CMAKE_ARGS - -DBUILD_SHARED_LIBS:BOOL=OFF - -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR} - -DBIN_INSTALL_DIR:STRING=lib - -DLIB_INSTALL_DIR:STRING=lib - -DINCLUDE_INSTALL_DIR:STRING=include - -DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH} - $<$>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}> - -Wno-dev - ) - + else() include(ExternalProject) ExternalProject_Add(qmdns - PREFIX ${CMAKE_BINARY_DIR}/dependencies/external/qmdnsengine + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/external/qmdnsengine BUILD_ALWAYS OFF DOWNLOAD_COMMAND "" SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/qmdnsengine - CMAKE_ARGS ${QMDNS_CMAKE_ARGS} + BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/external/qmdnsengine/bin + CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=OFF + -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR} + -DBIN_INSTALL_DIR:STRING=lib + -DLIB_INSTALL_DIR:STRING=lib + -DINCLUDE_INSTALL_DIR:STRING=include + -DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH} + -DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER} + -DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} + -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -Wno-dev # We don't want to be warned over unused variables INSTALL_DIR ${CMAKE_BINARY_DIR} - BUILD_BYPRODUCTS ${QMDNS_LIBRARIES} + BUILD_BYPRODUCTS /lib/${CMAKE_STATIC_LIBRARY_PREFIX}qmdnsengine${CMAKE_STATIC_LIBRARY_SUFFIX} ) add_library(qmdnsengine STATIC IMPORTED GLOBAL) - set_target_properties(qmdnsengine PROPERTIES - IMPORTED_LOCATION ${QMDNS_LIBRARIES} - INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR}/include - ) - add_dependencies(qmdnsengine qmdns) - endif () + ExternalProject_Get_Property(qmdns INSTALL_DIR) + set_target_properties(qmdnsengine PROPERTIES + IMPORTED_LOCATION "${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}qmdnsengine${CMAKE_STATIC_LIBRARY_SUFFIX}" + INTERFACE_INCLUDE_DIRECTORIES "${INSTALL_DIR}/include" + ) + endif() endif() #=============================================================================