|
|
Home » Community » U++ community news and announcements » 2020.1 officially released
|
|
|
|
Re: 2020.1 officially released [message #54136 is a reply to message #54135] |
Tue, 02 June 2020 21:20   |
Novo
Messages: 1430 Registered: December 2006
|
Ultimate Contributor |
|
|
mirek wrote on Tue, 02 June 2020 15:07Novo wrote on Tue, 02 June 2020 18:56mirek wrote on Tue, 02 June 2020 11:40Can you post .bm?
I fixed problem with clang++ by using x86_64-w64-mingw32-clang++ instead of it. Before that I was trying to use /home/ssg/.local/soft/llvm-mingw/llvm-mingw-20200325-ubuntu- 18.04/bin/clang++ as a compiler ... Plain clang++ didn't work by definition.
A new problem is that umk is passing POSIX and LINUX flags to x86_64-w64-mingw32-clang++ because it runs on Linux ... 
Basically, this makes cross-compilation impossible with the current umk ...
Hm, we probably need to add flags override to .bm, right?
IMHO, we need an option for umk. Something like "target platform", "-t", I guess. Possible values should be "windows", "linux", "mac", "native", e.t.c.
Another useful option for umk on Windows is "use POSIX-like configuration files". I'm already doing this, but I manually change source code for that.
Regards,
Novo
|
|
|
Re: 2020.1 officially released [message #54137 is a reply to message #53839] |
Tue, 02 June 2020 21:26   |
Novo
Messages: 1430 Registered: December 2006
|
Ultimate Contributor |
|
|
This is how a command line looks at the moment ...
x86_64-w64-mingw32-clang++ -c `pkg-config --cflags freetype2` `pkg-config --cflags x11` `pkg-config --cflags xinerama` `pkg-config --cflags xrender` `pkg-config --cflags xft` `pkg-config --cflags xdmcp` `pkg-config --cflags fontconfig` `pkg-config --cflags xcb` `pkg-config --cflags xext` `pkg-config --cflags gtk+-3.0` `pkg-config --cflags libnotify` `pkg-config --cflags expat` `pkg-config --cflags libpng` -I"/home/ssg/.local/soft/bb-worker/worker/mingw-sdb/build" -I"/home/ssg/dvlp/cpp/code/upp/git/bazaar" -I"/home/ssg/dvlp/cpp/code/upp/git/uppsrc" -I"/home/ssg/.wine/drive_c/local/apps/upp/bin/SDL2/include" -I"/home/ssg/.wine/drive_c/local/apps/upp/bin/pgsql/x64/include" -I"/home/ssg/.wine/drive_c/local/apps/upp/bin/mysql/include" -I"/home/ssg/.local/soft/bb-worker/worker/mingw-sdb/build/dvlp/plugin/sol3" -I"/home/ssg/.local/soft/bb-worker/worker/mingw-sdb/build/dvlp/plugin/lua/lib" -I"/home/ssg/.local/soft/bb-worker/worker/mingw-sdb/build/.cache/upp.out/Painter/CLANGcpp17.Debug.Debug_Full.Gui.Shared" -DflagGUI -DflagCLANG -DflagDEBUG -DflagSHARED -DflagDEBUG_FULL -DflagBLITZ -DflagPOSIX -DflagLINUX -ggdb -g2 -fexceptions -D_DEBUG -O0 -x c++ -Wall -Wno-logical-op-parentheses -std=c++17 "/home/ssg/dvlp/cpp/code/upp/git/uppsrc/Painter/SvgUtil.cpp" -o "/home/ssg/.local/soft/bb-worker/worker/mingw-sdb/build/.cache/upp.out/Painter/CLANGcpp17.Debug.Debug_Full.Gui.Shared/SvgUtil.o"
Regards,
Novo
|
|
|
Re: 2020.1 officially released [message #54138 is a reply to message #54136] |
Tue, 02 June 2020 21:27   |
 |
mirek
Messages: 14255 Registered: November 2005
|
Ultimate Member |
|
|
Novo wrote on Tue, 02 June 2020 21:20mirek wrote on Tue, 02 June 2020 15:07Novo wrote on Tue, 02 June 2020 18:56mirek wrote on Tue, 02 June 2020 11:40Can you post .bm?
I fixed problem with clang++ by using x86_64-w64-mingw32-clang++ instead of it. Before that I was trying to use /home/ssg/.local/soft/llvm-mingw/llvm-mingw-20200325-ubuntu- 18.04/bin/clang++ as a compiler ... Plain clang++ didn't work by definition.
A new problem is that umk is passing POSIX and LINUX flags to x86_64-w64-mingw32-clang++ because it runs on Linux ... 
Basically, this makes cross-compilation impossible with the current umk ...
Hm, we probably need to add flags override to .bm, right?
IMHO, we need an option for umk. Something like "target platform", "-t", I guess. Possible values should be "windows", "linux", "mac", "native", e.t.c.
Another useful option for umk on Windows is "use POSIX-like configuration files". I'm already doing this, but I manually change source code for that.
Well, we already can add flags via "Common fixed flags". I think all we need is "override" option that would avoid adding platform flags before adding these fixed. And then of replace any PLATFORM_ #ifdefs in GCC builder with if(HasFlag(...
|
|
|
Re: 2020.1 officially released [message #54139 is a reply to message #54138] |
Tue, 02 June 2020 21:33   |
Novo
Messages: 1430 Registered: December 2006
|
Ultimate Contributor |
|
|
mirek wrote on Tue, 02 June 2020 15:27
Well, we already can add flags via "Common fixed flags". I think all we need is "override" option that would avoid adding platform flags before adding these fixed. And then of replace any PLATFORM_ #ifdefs in GCC builder with if(HasFlag(...
IMHO, that won't affect stuff like `pkg-config --cflags x11` 
This is done by umk...
Edited: Or I'm missing something.
Regards,
Novo
[Updated on: Tue, 02 June 2020 21:37] Report message to a moderator
|
|
|
Re: 2020.1 officially released [message #54140 is a reply to message #53839] |
Tue, 02 June 2020 21:39   |
Novo
Messages: 1430 Registered: December 2006
|
Ultimate Contributor |
|
|
Another thing. umk is ignoring options from bm-files.
Even if I enable BLITZ in a bm-file, I still have to pass "-b" to umk...
Edited: I need to double-check that. Probably, I've got lost among ide, theide, and umk configuration folders ...
Edited again: Yes, umk ignores settings from bm-files.
Regards,
Novo
[Updated on: Wed, 03 June 2020 06:41] Report message to a moderator
|
|
|
|
Re: 2020.1 officially released [message #54142 is a reply to message #54138] |
Wed, 03 June 2020 07:37   |
Sender Ghost
Messages: 301 Registered: November 2008
|
Senior Member |
|
|
mirek wrote on Tue, 02 June 2020 19:27
Well, we already can add flags via "Common fixed flags". I think all we need is "override" option that would avoid adding platform flags before adding these fixed.
As far as I know, there is a possibility to override platform related flags. This feature is implemented in LocalHost::AddFlags and LocalHost::HasPlatformFlag methods [1, 2, 3].
For example, possible to generate Makefile(s) for WIN32 platform, e.g.:
./umk uppsrc ide CLANG -r -M=Makefile +WIN32,GUI
or FreeBSD:
./umk uppsrc ide CLANG -rs -M=BSDMakefile +POSIX,BSD,FREEBSD,GUI
or Linux:
./umk uppsrc ide CLANG -rs -M=GNUMakefile +POSIX,LINUX,GUI
etc.
There is just a need to use correct build method for them. But I didn't test this for cross-platform/remote build(s), just for Makefile generation.
May suggest to add "OSX" flag to platformFlags also (based on order of appearance in LocalHost::AddFlags method). Patch attached.
[Updated on: Wed, 03 June 2020 08:28] Report message to a moderator
|
|
|
Re: 2020.1 officially released [message #54143 is a reply to message #54136] |
Wed, 03 June 2020 09:28   |
Tom1
Messages: 1301 Registered: March 2007
|
Ultimate Contributor |
|
|
Quote:
IMHO, we need an option for umk. Something like "target platform", "-t", I guess. Possible values should be "windows", "linux", "mac", "native", e.t.c.
Hi,
This idea sounds very interesting. Especially if this could be possible to extend to TheIDE on Windows. Then it would be possible to build with CLANG on Windows directly for Raspberry Pi. This would make developing for RPi so much more convenient!
Best regards,
Tom
|
|
|
Re: 2020.1 officially released [message #54144 is a reply to message #54142] |
Wed, 03 June 2020 12:46   |
 |
mirek
Messages: 14255 Registered: November 2005
|
Ultimate Member |
|
|
Sender Ghost wrote on Wed, 03 June 2020 07:37mirek wrote on Tue, 02 June 2020 19:27
Well, we already can add flags via "Common fixed flags". I think all we need is "override" option that would avoid adding platform flags before adding these fixed.
As far as I know, there is a possibility to override platform related flags. This feature is implemented in LocalHost::AddFlags and LocalHost::HasPlatformFlag methods [1, 2, 3].
For example, possible to generate Makefile(s) for WIN32 platform, e.g.:
./umk uppsrc ide CLANG -r -M=Makefile +WIN32,GUI
or FreeBSD:
./umk uppsrc ide CLANG -rs -M=BSDMakefile +POSIX,BSD,FREEBSD,GUI
or Linux:
./umk uppsrc ide CLANG -rs -M=GNUMakefile +POSIX,LINUX,GUI
etc.
There is just a need to use correct build method for them. But I didn't test this for cross-platform/remote build(s), just for Makefile generation.
May suggest to add "OSX" flag to platformFlags also (based on order of appearance in LocalHost::AddFlags method). Patch attached.
Yes, but that ADDs flags. The problem is that there are default, platform defined flags too. We need a method to clear those...
Well, radical solution would be to remove them completely and move them strictly to build method. Less radical is to add an option "No default flags" to build method.
Second problem is that there are some #ifdef PLATFORM_ conditional compilation flags in GCC builder. Those need to be replaced to actually react to current flag configuration.
Mirek
|
|
|
|
|
Re: 2020.1 officially released [message #54148 is a reply to message #54144] |
Thu, 04 June 2020 05:16   |
Sender Ghost
Messages: 301 Registered: November 2008
|
Senior Member |
|
|
mirek wrote on Wed, 03 June 2020 10:46
Yes, but that ADDs flags. The problem is that there are default, platform defined flags too. We need a method to clear those...
Actually, this is what it does before adding default platform flags, defined by #if(def)(s), if some platform flag was found for override:
if(HasPlatformFlag(cfg))
return;
Novo wrote on Tue, 02 June 2020 19:20
IMHO, we need an option for umk. Something like "target platform", "-t", I guess.
Thanks for suggestion. I proposed this feature on Redmine #2041.
|
|
|
|
|
Re: 2020.1 officially released [message #54151 is a reply to message #54149] |
Thu, 04 June 2020 13:52   |
Novo
Messages: 1430 Registered: December 2006
|
Ultimate Contributor |
|
|
mirek wrote on Thu, 04 June 2020 04:31I have removed all #ifdef PLATFORM_* from GCC builder (except one case where this was not possible, but that one should not affect POSIX -> WIN32 compilation).
Thanks.
Unfortunately, your last commit broke linking of Linux console apps.
Linking...
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/.cache/upp.out/ide/Builders/CLANG.Debug.Debug_Full.Noblitz.Shared/Builders.a(Cocoa.o): in function `GccBuilder::CocoaAppBundle()':
/home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:18: undefined reference to `Upp::StreamRaster::LoadFileAny(char const*, Upp::Function<bool (int, int)>)'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:26: undefined reference to `Upp::Image::~Image()'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:26: undefined reference to `Upp::Image::~Image()'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:48: undefined reference to `Upp::Image::Image(Upp::Image const&)'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:51: undefined reference to `Upp::PNGEncoder::PNGEncoder(int, Upp::ImageKind, bool)'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:51: undefined reference to `Upp::Rescale(Upp::Image const&, int, int, Upp::Function<bool (int, int)>)'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:51: undefined reference to `Upp::StreamRasterEncoder::SaveFile(char const*, Upp::Image const&)'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:51: undefined reference to `Upp::Image::~Image()'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:51: undefined reference to `Upp::PNGEncoder::~PNGEncoder()'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:52: undefined reference to `Upp::Image::~Image()'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:51: undefined reference to `Upp::Image::~Image()'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:51: undefined reference to `Upp::PNGEncoder::~PNGEncoder()'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/ide/Builders/Cocoa.cpp:52: undefined reference to `Upp::Image::~Image()'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/.cache/upp.out/ide/Builders/CLANG.Debug.Debug_Full.Noblitz.Shared/Builders.a(Cocoa.o): in function `PNGRaster__initialize_struct':
/home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/plugin/png/png.h:8: undefined reference to `Upp::PNGRaster__initializer()'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/.cache/upp.out/ide/Builders/CLANG.Debug.Debug_Full.Noblitz.Shared/Builders.a(Cocoa.o): in function `Upp::SortedVectorMap<int, Upp::Image, Upp::StdLess<int> >::Add(int const&, Upp::Image const&)':
/home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/Core/InVector.h:650: undefined reference to `Upp::Image::operator=(Upp::Image const&)'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/Core/InVector.h:650: undefined reference to `Upp::Image::~Image()'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/Core/InVector.h:650: undefined reference to `Upp::Image::~Image()'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/.cache/upp.out/ide/Builders/CLANG.Debug.Debug_Full.Noblitz.Shared/Builders.a(Cocoa.o): in function `void Upp::Destroy<Upp::Image>(Upp::Image*, Upp::Image const*)':
/home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/Core/Vcont.h:28: undefined reference to `Upp::Image::~Image()'
/usr/bin/ld: /home/ssg/.local/soft/bb-worker/worker/l-upp/build/.cache/upp.out/ide/Builders/CLANG.Debug.Debug_Full.Noblitz.Shared/Builders.a(Cocoa.o): in function `Upp::Image Upp::clone<Upp::Image>(Upp::Image const&)':
/home/ssg/.local/soft/bb-worker/worker/l-upp/build/uppsrc/Core/Defs.h:398: undefined reference to `Upp::Image::Image(Upp::Image const&)'
Basically, umk cannot be built either using a Makefile or umk itself ...
Regards,
Novo
[Updated on: Thu, 04 June 2020 14:10] Report message to a moderator
|
|
|
|
Goto Forum:
Current Time: Fri Apr 25 19:01:04 CEST 2025
Total time taken to generate the page: 0.01088 seconds
|
|
|