xyproto / cxx

:electric_plug: Configuration-free utility for building, testing and packaging executables written in C++. Can auto-detect compilation flags based on includes, via the package system and pkg-config.
BSD 3-Clause "New" or "Revised" License
121 stars 5 forks source link

cxx fails, when CXX or CXXFLAGS are used #7

Open winspool opened 6 months ago

winspool commented 6 months ago

the cxx tool fails to handle CXX or CXXFLAGS environment variables correctly, even for a hello.cpp

Examples:

CXX="g++  -DHELLO_FROM_CXX" cxx
CXX="g++"  CXXFLAGS="-DHELLO_FROM_CXXFLAGS" cxx

Instead of building the example, scons prints the scons commandline help.


When avoiding a "-D" in CXXFLAGS and using a "-I" instead (with a script for CXX), the failure is different:

Example with "scriptname":

CXX="scriptname"  CXXFLAGS=" -I/$HOME/dummy_include_dir "  cxx 

scriptname -o hello.o -c -std=c++20 -O2 -pipe -fPIC -fno-plt -fstack-protector-strong -Wall -Wshadow -Wpedantic -Wno-parentheses -Wfatal-errors -Wvla -Wignored-qualifiers hello.cpp
sh: 1: scriptname: not found
*** [hello.o] Error 127

Using export makes no difference:

export CXX="scriptname"
export CXXFLAGS=" -I/$HOME/dummy_include_dir "
cxx

scriptname -o hello.o -c -std=c++20 -O2 -pipe -fPIC -fno-plt -fstack-protector-strong -Wall -Wshadow -Wpedantic -Wno-parentheses -Wfatal-errors -Wvla -Wignored-qualifiers hello.cpp
sh: 1: scriptname: not found
*** [hello.o] Error 127
xyproto commented 6 months ago

Ah, yes. This isn't really supported. I want to support this in cxx2 which will be a scons-less rewrite.

Until then, I'll either update the documentation to say this isn't supported or add support for it.

Thanks for reporting.