Skip to content

Commit dd562b5

Browse files
committed
Experimenting with the macOS action workflow and default settings.
1 parent 50a723e commit dd562b5

File tree

5 files changed

+36
-20
lines changed

5 files changed

+36
-20
lines changed

.github/workflows/macos-build.yml

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,24 +26,14 @@ jobs:
2626
- name: Ensure Xcode CLI Tools
2727
run: sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
2828

29-
- name: Set SDKROOT
30-
run: echo "SDKROOT=$(xcrun --show-sdk-path)" >> $GITHUB_ENV
31-
3229
- name: create build directory
3330
working-directory: ${{github.workspace}}
3431
run: mkdir build
3532

36-
- name: Check SDK and architecture
37-
run: |
38-
clang -v
39-
echo $SDKROOT
40-
uname -m
41-
4233
- name: Configure CMake for macOS native
4334
working-directory: ${{github.workspace}}
44-
run: |
45-
cmake -S . -B build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_OSX_SYSROOT=$(xcrun --show-sdk-path) -DCMAKE_SYSTEM_NAME=Darwin -DCMAKE_BUILD_TYPE=Release -DAREG_COMPILER_FAMILY=llvm -DAREG_PROCESSOR=arm64
35+
run: cmake -S . -B ./build
4636

4737
- name: Build with CMake
4838
working-directory: ${{github.workspace}}
49-
run: cmake --build build --config ${{env.BUILD_TYPE}} -j16
39+
run: cmake --build ./build -j16

conf/cmake/common.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,10 +265,10 @@ include_directories(BEFORE "${AREG_FRAMEWORK}" "${AREG_BUILD_ROOT}" "${AREG_GENE
265265
link_directories(BEFORE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" "${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}")
266266

267267
# Only for Linux
268-
if((UNIX) AND (NOT CYGWIN) AND (NOT MINGW))
268+
if (AREG_PLATFORM_MACOS)
269+
set(CMAKE_EXECUTABLE_SUFFIX ".mac")
270+
elseif ((UNIX) AND (NOT CYGWIN) AND (NOT MINGW))
269271
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
270-
elseif(AREG_PLATFORM_MACOS)
271-
set(CMAKE_EXECUTABLE_SUFFIX ".macos")
272272
endif()
273273

274274
set(COMMON_COMPILE_DEF)

conf/cmake/functions.cmake

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,9 @@ macro(macro_setup_compilers_data
577577
endif()
578578

579579
# Iterate over known compilers to identify the compiler type
580-
foreach(_entry "clang-cl;llvm;clang-cl" "clang++;llvm;clang" "clang;llvm;clang" "appleclang++;llvm;appleclang" "g++;gnu;gcc" "gcc;gnu;gcc" "c++;gnu;cc" "cc;gnu;cc" "cl;msvc;cl")
580+
# Note: "c++" and "cc" use "wrapper" family - they need runtime detection since they
581+
# can be symlinks/wrappers for either GCC or Clang depending on the system
582+
foreach(_entry "clang-cl;llvm;clang-cl" "clang++;llvm;clang" "clang;llvm;clang" "appleclang++;llvm;appleclang" "g++;gnu;gcc" "gcc;gnu;gcc" "c++;wrapper;cc" "cc;wrapper;cc" "cl;msvc;cl")
581583
list(GET _entry 0 _cxx_comp)
582584

583585
# Check if the provided compiler matches the known C++ compiler
@@ -586,6 +588,27 @@ macro(macro_setup_compilers_data
586588
if (_found_pos GREATER -1)
587589
list(GET _entry 1 _family)
588590
list(GET _entry 2 _cc_comp)
591+
592+
# Handle cc/c++ wrapper compilers - detect actual compiler by running --version
593+
if (${_family} STREQUAL wrapper)
594+
execute_process(
595+
COMMAND "${compiler_path}" --version
596+
OUTPUT_VARIABLE _version_output
597+
ERROR_QUIET
598+
OUTPUT_STRIP_TRAILING_WHITESPACE
599+
RESULT_VARIABLE _version_result
600+
)
601+
string(TOLOWER "${_version_output}" _version_lower)
602+
603+
if ("${_version_lower}" MATCHES "clang")
604+
# cc/c++ is actually Clang (common on macOS and some Linux distros)
605+
set(_family "llvm")
606+
else()
607+
# Assume GNU/GCC
608+
set(_family "gnu")
609+
endif()
610+
endif()
611+
589612
# Handle special case for CYGWIN and GNU family compilers
590613
if (${_family} STREQUAL gnu)
591614
if (CYGWIN)
@@ -639,6 +662,9 @@ macro(macro_setup_compilers_data
639662
unset(_family)
640663
unset(_cc_comp)
641664
unset(_found_pos)
665+
unset(_version_output)
666+
unset(_version_lower)
667+
unset(_version_result)
642668

643669
endmacro(macro_setup_compilers_data)
644670

tools/setup-project.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ echo ^)
5656
echo FetchContent_MakeAvailable^(areg^)
5757
echo.
5858
echo # Set the root directory of the fetched Areg SDK
59-
echo set^(AREG_SDK_ROOT "${areg_SOURCE_DIR}"^)
59+
echo set^(AREG_SDK_ROOT "${areg_SOURCE_DIR}"^)
6060
echo set^(AREG_CMAKE_CONFIG_DIR "${AREG_SDK_ROOT}/conf/cmake"^)
61-
echo set^(AREG_CMAKE "${AREG_SDK_ROOT}/areg.cmake"^)
61+
echo set^(AREG_CMAKE "${AREG_SDK_ROOT}/areg.cmake"^)
6262
echo message^(STATUS ">>> Fetched Areg SDK from GitHub to ${FETCHCONTENT_BASE_DIR}"^)
6363
echo message^(STATUS ">>> Location of 'areg.cmake' ${AREG_CMAKE}"^)
6464
echo else^(^)

tools/setup-project.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ if (NOT areg_FOUND)
5858
FetchContent_MakeAvailable(areg)
5959
6060
# Set the root directory of the fetched Areg SDK
61-
set(AREG_SDK_ROOT "\${areg_SOURCE_DIR}")
61+
set(AREG_SDK_ROOT "\${areg_SOURCE_DIR}")
6262
set(AREG_CMAKE_CONFIG_DIR "\${AREG_SDK_ROOT}/conf/cmake")
63-
set(AREG_CMAKE "\${AREG_SDK_ROOT}/areg.cmake")
63+
set(AREG_CMAKE "\${AREG_SDK_ROOT}/areg.cmake")
6464
message(STATUS ">>> Fetched Areg SDK from GitHub to \${FETCHCONTENT_BASE_DIR}")
6565
message(STATUS ">>> Location of 'areg.cmake' \${AREG_CMAKE}")
6666
else()

0 commit comments

Comments
 (0)