builder: Add to new cmake vars to control libcxx usage
ci/woodpecker/push/build Pipeline failed Details
ci/woodpecker/push/lint Pipeline was successful Details

This commit is contained in:
Sameer Rahmani 2023-02-10 17:42:12 +00:00
parent fe8b1763a3
commit 4d5027d13d
Signed by: lxsameer
GPG Key ID: B0A4AF28AB9FD90B
3 changed files with 27 additions and 9 deletions

2
.gitmodules vendored
View File

@ -9,4 +9,4 @@
[submodule "deps/include-what-you-use"]
path = deps/include-what-you-use
url = https://beta.devheroes.codes/Serene/include-what-you-use.git
url = https://beta.devheroes.codes/Serene/include-what-you-use.git

View File

@ -42,6 +42,14 @@ option(SERENE_ENABLE_DOCS "Enable document generation" OFF)
option(SERENE_ENABLE_TIDY "Enable clang tidy check" OFF)
option(SERENE_DISABLE_CCACHE "Disable automatic ccache integration" OFF)
option(SERENE_ENABLE_DEVTOOLS "Enable the devtools build" OFF)
option(SERENE_USE_LIBCXX
"Use libc++ instead of the default (The deafault might be libc++ as well)"
OFF)
set(SERENE_TOOLCHAIN_PATH
""
CACHE
STRING
"Path to the LLVM build. If empty will use the the default on the platform.")
# libserene
option(SERENE_SHARED_LIB "Build libserene as a shared library" ON)
@ -88,6 +96,10 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
# Let's nicely support folders in IDEs
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
find_package(BDWgc 8.2.0 REQUIRED)
find_program(LLD_PROGRAM REQUIRED NAMES lld)
find_program(MLIRTBLGEN_PROGRAM REQUIRED NAMES mlir-tblgen)
# Setup the basic compiler flags
add_compile_options(
-Wall
@ -144,6 +156,14 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
#--static
)
if ((SERENE_USE_LIBCXX) AND (NOT (SERENE_TOOLCHAIN_PATH)))
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -v")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++abi")
endif()
if ((SERENE_USE_LIBCXX) AND (SERENE_TOOLCHAIN_PATH))
endif()
if (SERENE_USE_COMPILER_RT)
add_link_options(-rtlib=compiler-rt -stdlib=libc++ )
endif()
@ -153,10 +173,6 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
set(BUILD_SHARED_LIBS "${SERENE_SHARED_LIB}")
endif()
find_package(BDWgc 8.2.0 REQUIRED)
find_program(LLD_PROGRAM REQUIRED NAMES lld)
find_program(MLIRTBLGEN_PROGRAM REQUIRED NAMES mlir-tblgen)
if(SERENE_ENABLE_BUILDID)
add_link_options(-Wl,--build-id)

10
builder
View File

@ -103,6 +103,9 @@ export ASAN_OPTIONS
LSAN_OPTIONS=suppressions="$ME/.ignore_sanitize"
export LSAN_OPTIONS
# shellcheck source=./scripts/deps.sh
source "$ME/scripts/deps.sh"
CMAKEARGS_DEBUG=(
"-DCMAKE_BUILD_TYPE=Debug"
@ -110,12 +113,11 @@ CMAKEARGS_DEBUG=(
CMAKEARGS=(
"-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
"-DCMAKE_EXE_LINKER_FLAGS='-stdlib=libc++' -lc++abi"
"-DSERENE_USE_LIBCXX=ON"
"-DSERENE_TOOLCHAIN_PATH=$LLVM_INSTALL_DIR"
"-DSERENE_CCACHE_DIR=$HOME/.ccache"
)
# shellcheck source=./scripts/deps.sh
source "$ME/scripts/deps.sh"
# -----------------------------------------------------------------------------
# Initialization
@ -154,7 +156,7 @@ function build-gen() {
pushed_build
info "Running: "
info "cmake -G Ninja ${CMAKEARGS[*]} ${CMAKEARGS_DEBUG[*]}" "$@" "$ME"
cmake -G Ninja "${CMAKEARGS[*]} ${CMAKEARGS_DEBUG[*]}" "$@" "$ME"
cmake -G Ninja "${CMAKEARGS[@]}" "${CMAKEARGS_DEBUG[@]}" "$@" "$ME"
popd_build
}