В настоящее время я могу собрать свою программу, используя ускоренную сборку на разных платформах, установив набор инструментов и параметры в командной строке. Например :
линукс
b2
MacOS
b2 toolset=clang cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++"
Есть ли способ создать правило в файле Jamroot, чтобы решить, какой компилятор использовать в зависимости от операционной системы? Я ищу что-то в этом роде:
import os ;
if [ os.on-macos ] {
using clang : <cxxflags>"-stdlib=libc++" <linkflags>"-stdlib=libc++c ;"
}
в Linux он автоматически решает использовать gcc, но в Mac, если я не укажу набор инструментов clang, он попытается (безуспешно) скомпилировать его с помощью gcc.
Просто для справки, вот мой текущий jamroot (любые предложения также приветствуются):
# Project requirements (note, if running on a Mac you have to build foghorn with clang with libc++)
project myproject
: requirements <cxxflags>-std=c++11 <linkflags>-std=c++11 ;
# Build binaries in src
lib boost_program_options ;
exe app
: src/main.cpp src/utils src/tools boost_program_options
;