use ninja generator under macos

This commit is contained in:
Paulchen-Panther
2023-12-28 17:58:05 +01:00
committed by LordGrey
parent dc564e9a72
commit dad1d8b4b4
3 changed files with 26 additions and 33 deletions

View File

@@ -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 # Build the package on MacOS, Windows or Linux
if [[ "$RUNNER_OS" == 'macOS' ]]; then if [[ "$RUNNER_OS" == 'macOS' ]]; then
mkdir build || exit 1 mkdir build || exit 1
cd build cmake -B build -G Ninja -DPLATFORM=${PLATFORM} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH=/usr/local || exit 2
cmake -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
make -j $(sysctl -n hw.ncpu) package || exit 3
cd ${GITHUB_WORKSPACE} && source /${GITHUB_WORKSPACE}/test/testrunner.sh || exit 4 cd ${GITHUB_WORKSPACE} && source /${GITHUB_WORKSPACE}/test/testrunner.sh || exit 4
exit 0; exit 0;
exit 1 || { echo "---> Hyperion compilation failed! Abort"; exit 5; } exit 1 || { echo "---> Hyperion compilation failed! Abort"; exit 5; }

View File

@@ -117,7 +117,7 @@ jobs:
echo '::group::Update/Install dependencies' echo '::group::Update/Install dependencies'
brew untap --force homebrew/core homebrew/cask brew untap --force homebrew/core homebrew/cask
brew update || true brew update || true
brew install qt${{ inputs.qt_version }} vulkan-headers || true brew install qt${{ inputs.qt_version }} vulkan-headers ninja || true
echo '::endgroup::' echo '::endgroup::'
- name: 👷 Build - name: 👷 Build

View File

@@ -24,42 +24,36 @@ if (ENABLE_MDNS)
if(USE_SYSTEM_QMDNS_LIBS) if(USE_SYSTEM_QMDNS_LIBS)
find_package(qmdnsengine REQUIRED) find_package(qmdnsengine REQUIRED)
else() else()
if(WIN32) include(ExternalProject)
set(QMDNS_LIBRARIES ${CMAKE_BINARY_DIR}/lib/qmdnsengine${CMAKE_STATIC_LIBRARY_SUFFIX}) ExternalProject_Add(qmdns
else() PREFIX ${CMAKE_CURRENT_BINARY_DIR}/external/qmdnsengine
set(QMDNS_LIBRARIES ${CMAKE_BINARY_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}qmdnsengine${CMAKE_STATIC_LIBRARY_SUFFIX}) BUILD_ALWAYS OFF
endif() DOWNLOAD_COMMAND ""
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/qmdnsengine
get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/external/qmdnsengine/bin
set(QMDNS_CMAKE_ARGS CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=OFF
-DBUILD_SHARED_LIBS:BOOL=OFF
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR} -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}
-DBIN_INSTALL_DIR:STRING=lib -DBIN_INSTALL_DIR:STRING=lib
-DLIB_INSTALL_DIR:STRING=lib -DLIB_INSTALL_DIR:STRING=lib
-DINCLUDE_INSTALL_DIR:STRING=include -DINCLUDE_INSTALL_DIR:STRING=include
-DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH} -DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH}
$<$<NOT:$<BOOL:${isMultiConfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}> -DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-Wno-dev -DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
) -DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}
-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
include(ExternalProject) -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
ExternalProject_Add(qmdns -Wno-dev # We don't want to be warned over unused variables
PREFIX ${CMAKE_BINARY_DIR}/dependencies/external/qmdnsengine
BUILD_ALWAYS OFF
DOWNLOAD_COMMAND ""
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/qmdnsengine
CMAKE_ARGS ${QMDNS_CMAKE_ARGS}
INSTALL_DIR ${CMAKE_BINARY_DIR} INSTALL_DIR ${CMAKE_BINARY_DIR}
BUILD_BYPRODUCTS ${QMDNS_LIBRARIES} BUILD_BYPRODUCTS <INSTALL_DIR>/lib/${CMAKE_STATIC_LIBRARY_PREFIX}qmdnsengine${CMAKE_STATIC_LIBRARY_SUFFIX}
) )
add_library(qmdnsengine STATIC IMPORTED GLOBAL) 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) add_dependencies(qmdnsengine qmdns)
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()
endif() endif()