-
Notifications
You must be signed in to change notification settings - Fork 7
build(cmake): Lower minimum Clang version for Velox compatibility: #72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 5 commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
ce7241c
Remove traceableException feature and downgrade support of c++20 to c…
Bill-hbrhbr 1784467
Change compile definitions back to c++20
Bill-hbrhbr 292e6de
Setup and validate compiler versions
Bill-hbrhbr 5070e26
Transform all usages of std::ranges and std::views
Bill-hbrhbr fa39bd8
Update workflow to use llvm15 for macos-14
Bill-hbrhbr 59f3679
Address coderabbit review on cmake
Bill-hbrhbr f6df622
Address coderabbit comment on cpp
Bill-hbrhbr af310c9
Address coderabbit comments
Bill-hbrhbr 3d288e1
Update dev utils
Bill-hbrhbr 21680f6
Merge branch 'main' into velox-downgrade-cpp17
Bill-hbrhbr 75fb463
Remove llvm15 for macos14
Bill-hbrhbr ed0ea67
Apply suggestions from code review
Bill-hbrhbr 7f5e228
Remove unnecessary toolchain setup
Bill-hbrhbr 9ef42c1
Apply suggestions from code review
Bill-hbrhbr File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Bill-hbrhbr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| message(STATUS "Setting up LLVM v15 toolchain...") | ||
|
|
||
| execute_process( | ||
| COMMAND | ||
| "brew" "--prefix" "llvm@15" | ||
| RESULT_VARIABLE BREW_RESULT | ||
| OUTPUT_VARIABLE LLVM_TOOLCHAIN_PREFIX | ||
| OUTPUT_STRIP_TRAILING_WHITESPACE | ||
| ) | ||
Bill-hbrhbr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| if(NOT 0 EQUAL BREW_RESULT) | ||
| message( | ||
| FATAL_ERROR | ||
| "Failed to locate LLVM v15 using Homebrew. Please ensure llvm@15 is installed: 'brew \ | ||
| install llvm@15'" | ||
| ) | ||
Bill-hbrhbr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| endif() | ||
Bill-hbrhbr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| set(CMAKE_C_COMPILER "${LLVM_TOOLCHAIN_PREFIX}/bin/clang") | ||
| set(CMAKE_CXX_COMPILER "${LLVM_TOOLCHAIN_PREFIX}/bin/clang++") | ||
| set(CMAKE_AR "${LLVM_TOOLCHAIN_PREFIX}/bin/llvm-ar") | ||
| set(CMAKE_RANLIB "${LLVM_TOOLCHAIN_PREFIX}/bin/llvm-ranlib") | ||
Bill-hbrhbr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| # This file contains utility functions for setting up toolchains and validating toolchain versions | ||
| # to ensure compatibility with the C++20 features required by the project. | ||
|
|
||
Bill-hbrhbr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| # Sets up the appropriate toolchain file based on the host system. | ||
| function(setup_toolchains) | ||
| # For macOS versions below 15, use the LLVM 15 Clang toolchain. | ||
Bill-hbrhbr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| if("Darwin" STREQUAL "${CMAKE_HOST_SYSTEM_NAME}") | ||
Bill-hbrhbr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| execute_process( | ||
| COMMAND | ||
| "sw_vers" "--productVersion" | ||
| OUTPUT_VARIABLE MACOS_VERSION | ||
| OUTPUT_STRIP_TRAILING_WHITESPACE | ||
| ) | ||
| if("${MACOS_VERSION}" VERSION_LESS "15") | ||
| set(CMAKE_TOOLCHAIN_FILE | ||
| "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchains/llvm-clang-15-toolchain.cmake" | ||
| CACHE STRING | ||
| "Toolchain file" | ||
| ) | ||
| endif() | ||
Bill-hbrhbr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| endif() | ||
| endfunction() | ||
|
|
||
| # Checks if the compiler ID and version meet the minimum requirements to support C++20 features | ||
| # required by the project: | ||
| # - AppleClang: version 15+ | ||
| # - Clang: version 15+ | ||
| # - GNU: version 11+ | ||
Bill-hbrhbr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| function(validate_compiler_versions) | ||
| if("AppleClang" STREQUAL "${CMAKE_CXX_COMPILER_ID}") | ||
| set(CXX_COMPILER_MIN_VERSION "15") | ||
| elseif("Clang" STREQUAL "${CMAKE_CXX_COMPILER_ID}") | ||
| set(CXX_COMPILER_MIN_VERSION "15") | ||
| elseif("GNU" STREQUAL "${CMAKE_CXX_COMPILER_ID}") | ||
| set(CXX_COMPILER_MIN_VERSION "11") | ||
| else() | ||
| message( | ||
| FATAL_ERROR | ||
| "Unsupported compiler: ${CMAKE_CXX_COMPILER_ID}. Please use AppleClang, Clang, or GNU." | ||
| ) | ||
| endif() | ||
Bill-hbrhbr marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| if("${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS "${CXX_COMPILER_MIN_VERSION}") | ||
| message( | ||
| FATAL_ERROR | ||
| "${CMAKE_CXX_COMPILER_ID} version ${CMAKE_CXX_COMPILER_VERSION} is too low. Must be at \ | ||
| least ${CXX_COMPILER_MIN_VERSION}." | ||
Bill-hbrhbr marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| ) | ||
| endif() | ||
| endfunction() | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.