SCons / scons

SCons - a software construction tool
http://scons.org
MIT License
2.06k stars 314 forks source link

SCons on MSys2 does not recognize windows paths as absolute #3254

Open reduz opened 5 years ago

reduz commented 5 years ago

On Windows, MSYS2 (64 bits version), SCons 2.5.1, calling pkg-config for gtkmm has this output:

$ pkg-config gtkmm-3.0 --cflags --libs
-mms-bitfields -pthread -mms-bitfields -IC:/msys64/mingw64/include/gtkmm-3.0 -IC:/msys64/mingw64/lib/gtkmm-3.0/include -IC:/msys64/mingw64/include/atkmm-1.6 -IC:/msys64/mingw64/include/gdkmm-3.0 -IC:/msys64/mingw64/lib/gdkmm-3.0/include -IC:/msys64/mingw64/include/giomm-2.4 -IC:/msys64/mingw64/lib/giomm-2.4/include -IC:/msys64/mingw64/include/pangomm-1.4 -IC:/msys64/mingw64/lib/pangomm-1.4/include -IC:/msys64/mingw64/include/glibmm-2.4 -IC:/msys64/mingw64/lib/glibmm-2.4/include -IC:/msys64/mingw64/include/gtk-3.0 -IC:/msys64/mingw64/include/cairo -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/pango-1.0 -IC:/msys64/mingw64/include/fribidi -IC:/msys64/mingw64/include/atk-1.0 -IC:/msys64/mingw64/include/cairo -IC:/msys64/mingw64/include/cairomm-1.0 -IC:/msys64/mingw64/lib/cairomm-1.0/include -IC:/msys64/mingw64/include/cairo -IC:/msys64/mingw64/include/pixman-1 -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/freetype2 -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/harfbuzz -IC:/msys64/mingw64/include/libpng16 -IC:/msys64/mingw64/include/sigc++-2.0 -IC:/msys64/mingw64/lib/sigc++-2.0/include -IC:/msys64/mingw64/include/gdk-pixbuf-2.0 -IC:/msys64/mingw64/include/libpng16 -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/glib-2.0 -IC:/msys64/mingw64/lib/glib-2.0/include -IC:/msys64/mingw64/include -LC:/msys64/mingw64/lib -lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lgtk-3 -lgdk-3 -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid -lwinmm -ldwmapi -lsetupapi -lcfgmgr32 -lz -lpangowin32-1.0 -lpangocairo-1.0 -lpango-1.0 -lfribidi -latk-1.0 -lcairo-gobject -lgio-2.0 -lcairomm-1.0 -lcairo -lsigc-2.0 -lgdk_pixbuf-2.0 -lgobject-2.0 -lglib-2.0 -lintl

when passed to scons ParseConfig, scons does not understand the -IC: as relative path, so build commands appear as:

g++ -o gui/key_bindings.o -c -g3 -pthread -mms-bitfields -Iglobals -Igui -I. -Igui/C:/msys64/mingw64/include/gtkmm-3.0 -Igui/C:/msys64/mingw64/lib/gtkmm-3.0/include -Igui/C:/msys64/mingw64/include/atkmm-1.6 -Igui/C:/msys64/mingw64/include/gdkmm-3.0 -Igui/C:/msys64/mingw64/lib/gdkmm-3.0/include -Igui/C:/msys64/mingw64/include/giomm-2.4 -Igui/C:/msys64/mingw64/lib/giomm-2.4/include -Igui/C:/msys64/mingw64/include/pangomm-1.4
17:15 <reduz> -Igui/C:/msys64/mingw64/lib/pangomm-1.4/include 

Notice the -Igui/C: on each include, meaning it thinks it's relative. I could understand this for Cygwin, but this is MSys+Mingw

This is with the simplest project possible, calling Environment() and then ParseConfig and building any file results in this behavior.

bdbaddog commented 5 years ago

Please try SCons 3.0.1 as scons 2.5.1 is pretty old. Also please bring the discussion to the user's mailing list per "# Please bring your issue to the SCons users mailing list before filing an issue here"