@@ -31,12 +31,12 @@ endif
3131LDFLAGS ?=
3232SAN_FLAGS ?=
3333CXX_FLAGS ?= -g
34- # TODO: SANITIZER := release
35- SANITIZER ?= default
34+ SANITIZER := release
35+ SANITIZER ?= RelWithDebInfo
3636SOURCEDIR = $(CURDIR )
3737BUILDROOT = build
3838export hostSystemName: =$(shell uname -s)
39- # TODO BUILD := $(BUILDROOT)/$(SANITIZER)
39+ BUILD := $(BUILDROOT ) /$(SANITIZER )
4040BUILD ?= $(BUILDROOT ) /$(hostSystemName ) /$(SANITIZER )
4141EXAMPLE = beman.execution.examples.stop_token
4242
@@ -46,19 +46,19 @@ ifeq (${hostSystemName},Darwin)
4646 export LLVM_DIR: =$(shell realpath ${LLVM_PREFIX})
4747 export PATH: =${LLVM_DIR}/bin:${PATH}
4848
49- # export CMAKE_CXX_STDLIB_MODULES_JSON=${LLVM_DIR}/lib/c++/libc++.modules.json
50- # export CXX=clang++
51- # export LDFLAGS=-L$(LLVM_DIR)/lib/c++ -lc++abi -lc++ # -lc++experimental
52- # export GCOV="llvm-cov gcov"
49+ export CMAKE_CXX_STDLIB_MODULES_JSON =${LLVM_DIR}/lib/c++/libc++.modules.json
50+ export CXX =clang++
51+ export LDFLAGS =-L$(LLVM_DIR ) /lib/c++ -lc++abi # NO! -lc++ -lc++experimental
52+ export GCOV="llvm-cov gcov"
5353
5454 # ## TODO: to test g++-15:
5555 export GCC_PREFIX: =$(shell brew --prefix gcc)
5656 export GCC_DIR: =$(shell realpath ${GCC_PREFIX})
5757
58- export CMAKE_CXX_STDLIB_MODULES_JSON =${GCC_DIR}/lib/gcc/current/libstdc++.modules.json
59- export CXX: =g++-15
60- export CXXFLAGS:=-stdlib =libstdc++
61- export GCOV ="gcov"
58+ # export CMAKE_CXX_STDLIB_MODULES_JSON=${GCC_DIR}/lib/gcc/current/libstdc++.modules.json
59+ # export CXX:=g++-15
60+ # export CXXFLAGS:=-stdlib=libstdc++
61+ # export GCOV="gcov"
6262else ifeq (${hostSystemName},Linux)
6363 export LLVM_DIR =/usr/lib/llvm-20
6464 export PATH: =${LLVM_DIR}/bin:${PATH}
@@ -95,9 +95,9 @@ ifeq ($(SANITIZER),lsan)
9595endif
9696
9797# TODO: beman.execution.examples.modules
98- # FIXME: beman.execution.execution-module.test beman.execution.stop-token-module.test
98+ FIXME : beman.execution.execution-module.test beman.execution.stop-token-module.test
9999
100- default : test
100+ # XXX: NO! $(SANITIZER) : test
101101
102102all : $(SANITIZERS )
103103
@@ -111,16 +111,19 @@ doc:
111111# $(MAKE) SANITIZER=$@
112112
113113build :
114- cmake --fresh - G Ninja -S $(SOURCEDIR ) -B $(BUILD ) $(TOOLCHAIN ) $(SYSROOT ) \
114+ cmake -G Ninja -S $(SOURCEDIR ) -B $(BUILD ) $(TOOLCHAIN ) $(SYSROOT ) \
115115 -D CMAKE_EXPORT_COMPILE_COMMANDS=ON \
116116 -D CMAKE_SKIP_INSTALL_RULES=ON \
117117 -D CMAKE_CXX_STANDARD=23 \
118118 -D CMAKE_CXX_EXTENSIONS=ON \
119119 -D CMAKE_CXX_STANDARD_REQUIRED=ON \
120- -D CMAKE_CXX_COMPILER=$(CXX ) # XXX -D CMAKE_CXX_FLAGS="$(CXX_FLAGS) $(SAN_FLAGS)"
120+ -D CMAKE_CXX_SCAN_FOR_MODULES=ON \
121+ -D CMAKE_EXPERIMENTAL_CXX_IMPORT_STD=OFF \
122+ -D CMAKE_BUILD_TYPE=$(SANITIZER ) \
123+ -D CMAKE_CXX_COMPILER=$(CXX ) # XXX --fresh -D CMAKE_CXX_FLAGS="$(CXX_FLAGS) $(SAN_FLAGS)"
121124 cmake --build $(BUILD )
122125
123- # NOTE: without install, see CMAKE_SKIP_INSTALL_RULES! CK
126+ # NOTE: may w/o enabled install, see CMAKE_SKIP_INSTALL_RULES! CK
124127test : build
125128 ctest --test-dir $(BUILD ) --rerun-failed --output-on-failure
126129
0 commit comments