Thomas Debesse [Mon, 8 Mar 2021 08:31:53 +0000 (09:31 +0100)]
easy-builder: always sync before doing serious things to prevent issues happening with slow I/O on macOS
errors like that:
> CMakeFiles/gtktheme-mojave.dir/build.make:73: CMakeFiles/gtkglext.dir/build.make:73: CMakeFiles/gtktheme-mojave.dir/progress.make: No such file or directory
> ginstall: cannot change permissions of 'netradiant/build/lib/gtkglext-1.0/include/gdkglext-config.h': No such file or directory
> mkdir: netradiant/build/registry: Operation not permitted
> clang: error: no such file or directory: '../../libs/libcm.a'
Thomas Debesse [Mon, 8 Mar 2021 08:52:05 +0000 (09:52 +0100)]
easy-builder: the immediate build retry does not fix the random linking issue on macOS that usually desappear on rebuilding
Unfortunately retrying immediately does not help, while doing it by hand some time later does, I have no proper explanation yet:
```
[100%] Linking CXX executable ../netradiant
Undefined symbols for architecture x86_64:
"_gdk_gl_config_new", referenced from:
glconfig_new() in libgtkutil.a(glwidget.cpp.o)
glconfig_new_with_depth() in libgtkutil.a(glwidget.cpp.o)
"_gdk_gl_config_new_by_mode", referenced from:
glconfig_new() in libgtkutil.a(glwidget.cpp.o)
glconfig_new_with_depth() in libgtkutil.a(glwidget.cpp.o)
"_gdk_gl_drawable_get_type", referenced from:
_glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_make_current(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_swap_buffers(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
"_gdk_gl_drawable_gl_begin", referenced from:
_glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_make_current(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
"_gdk_gl_drawable_swap_buffers", referenced from:
glwidget_swap_buffers(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
"_gtk_widget_get_gl_context", referenced from:
_glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_make_current(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_enable_gl(ui::GLArea, ui::Widget, void*) in libgtkutil.a(glwidget.cpp.o)
"_gtk_widget_get_gl_window", referenced from:
_glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_make_current(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_swap_buffers(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
"_gtk_widget_is_gl_capable", referenced from:
glwidget_enable_gl(ui::GLArea, ui::Widget, void*) in libgtkutil.a(glwidget.cpp.o)
"_gtk_widget_set_gl_capability", referenced from:
glwidget_enable_gl(ui::GLArea, ui::Widget, void*) in libgtkutil.a(glwidget.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [netradiant] Error 1
make[1]: *** [radiant/CMakeFiles/netradiant.dir/all] Error 2
make: *** [all] Error 2
+ task_build
+ make -j8
[ 0%] Built target cm
[ 0%] Built target filematch
[ 1%] Built target archivepak
[ 3%] Built target mathlib
[ 3%] Built target fastlz
[ 3%] Built target l_net
[ 6%] Built target recast
[ 8%] Built target detour
[ 9%] Built target ddslib
[ 9%] Built target archivewad
[ 9%] Built target archivezip
[ 10%] Built target etclib
[ 10%] Built target imagehl
[ 10%] Built target imagepng
[ 11%] Built target imageq2
[ 12%] Built target imagewebp
[ 12%] Built target xmllib
[ 14%] Built target entity
[ 15%] Built target mapq3
[ 15%] Built target iqmmodel
[ 18%] Built target md3model
[ 18%] Built target shaders
[ 19%] Built target container
[ 19%] Built target cmdlib
[ 20%] Built target debugging
[ 24%] Built target generic
[ 25%] Built target picomodel
[ 25%] Built target uilib
[ 25%] Built target math
[ 25%] Built target memory
[ 25%] Built target os
[ 25%] Built target modulesystem
[ 26%] Built target profile
[ 26%] Built target script
[ 26%] Built target signal
[ 26%] Built target stream
[ 27%] Built target string
[ 29%] Built target includes
[ 30%] Built target splines
[ 30%] Built target libs
[ 37%] Built target qdata3
[ 39%] Built target image
[ 40%] Built target crnrgba
[ 41%] Built target vfspk3
[ 50%] Built target q3data
[ 54%] Built target q2map
[ 55%] Built target daemonmap
[ 56%] Built target h2data
[ 58%] Built target model
[ 58%] Built target mapxml
[ 59%] Built target imagecrn
[ 59%] Built target modules
[ 72%] Built target gtkutil
[ 75%] Built target q3map2
[ 75%] Built target shaderplug
[ 75%] Built target sunplug
[ 76%] Built target prtview
[ 77%] Built target ufoaiplug
[ 78%] Built target brushexport
[ 83%] Built target bobtoolz
[ 84%] Linking CXX executable ../netradiant
Undefined symbols for architecture x86_64:
"_gdk_gl_config_new", referenced from:
glconfig_new() in libgtkutil.a(glwidget.cpp.o)
glconfig_new_with_depth() in libgtkutil.a(glwidget.cpp.o)
"_gdk_gl_config_new_by_mode", referenced from:
glconfig_new() in libgtkutil.a(glwidget.cpp.o)
glconfig_new_with_depth() in libgtkutil.a(glwidget.cpp.o)
"_gdk_gl_drawable_get_type", referenced from:
_glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_make_current(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_swap_buffers(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
"_gdk_gl_drawable_gl_begin", referenced from:
_glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_make_current(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
"_gdk_gl_drawable_swap_buffers", referenced from:
glwidget_swap_buffers(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
"_gtk_widget_get_gl_context", referenced from:
_glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_make_current(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_enable_gl(ui::GLArea, ui::Widget, void*) in libgtkutil.a(glwidget.cpp.o)
"_gtk_widget_get_gl_window", referenced from:
_glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_make_current(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
glwidget_context_created(ui::GLArea, void*) in libgtkutil.a(glwidget.cpp.o)
glwidget_swap_buffers(ui::GLArea) in libgtkutil.a(glwidget.cpp.o)
"_gtk_widget_is_gl_capable", referenced from:
glwidget_enable_gl(ui::GLArea, ui::Widget, void*) in libgtkutil.a(glwidget.cpp.o)
"_gtk_widget_set_gl_capability", referenced from:
glwidget_enable_gl(ui::GLArea, ui::Widget, void*) in libgtkutil.a(glwidget.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [netradiant] Error 1
make[1]: *** [radiant/CMakeFiles/netradiant.dir/all] Error 2
make: *** [all] Error 2
```
Thomas Debesse [Sun, 7 Mar 2021 05:33:31 +0000 (06:33 +0100)]
radiant: build netradiant as non-PIE binary on Linux to workaround a mime-type bug
PIE executables were wrongly recognized as shared libraries on Linux
because of a mistake in the mime-type library.
Because of that it was not possible to launch such executables from
the file browser.
While the problem is fixed upstream, most distributions still ship
with a faulty mime-type library and may do for a long time.
Thomas Debesse [Fri, 5 Mar 2021 02:13:21 +0000 (03:13 +0100)]
preferences: onlrework the path page
- only ask for the basic options (engine path) on first startup
- mark other options as advanced and add some notes to discourage
people not knowing what pakpath is to use it by mistake.
- just name Pak Path as Pak Path, no need to display the number,
also makes code simpler.
Thomas Debesse [Fri, 26 Feb 2021 23:11:42 +0000 (00:11 +0100)]
q3map2: accept -bsp stage option name without complaining
- using it is far more consistent with other stages,
- makes reading options less prone to errors:
reading “q3map3 -meta” may induce to human
reader that meta is a stage while in fact
it's “q3map2 -bsp -meta” and meta is an
option for the bsp stage,
- it is not bad to use the explicit -bsp stage option,
- there is no reason to recommend to not use it.
Thomas Debesse [Sat, 20 Feb 2021 20:09:08 +0000 (21:09 +0100)]
quake2,heretic2: attempt to fix undeclared strupr, <3 Kai
Attempt to fix this:
netradiant/tools/heretic2/h2data/tmix.c:292:5: error: implicit declaration of function 'strupr' is invalid in C99
[-Werror,-Wimplicit-function-declaration]
strupr( buffer );
^
Thomas Debesse [Fri, 19 Feb 2021 20:17:08 +0000 (21:17 +0100)]
macos: introduce ugly packing hack to attempt to reduce the size of the residual GL viewport when another tab is expected to be above
HACK: The OpenGL viewport is reduced to one line on the bottom of the window when other tabs are displayed,
so the rectangle is not drawn over the window but a non-bostructing bottom line instead.
```
netradiant/plugins/vfspk3/vfs.cpp:595:7: warning: array index 1024 is past the end of the array (which contains 1024 elements)
[-Warray-bounds]
tmppath[PATH_MAX] = '\0';
^ ~~~~~~~~
netradiant/plugins/vfspk3/vfs.cpp:587:5: note: array 'tmppath' declared here
char tmppath[PATH_MAX];
^
netradiant/plugins/vfspk3/vfs.cpp:607:7: warning: array index 1024 is past the end of the array (which contains 1024 elements)
[-Warray-bounds]
tmppath[PATH_MAX] = '\0';
^ ~~~~~~~~
netradiant/plugins/vfspk3/vfs.cpp:587:5: note: array 'tmppath' declared here
char tmppath[PATH_MAX];
```
Thomas Debesse [Wed, 1 Jul 2020 16:20:25 +0000 (18:20 +0200)]
q3map2/light_bounce: prevent infinite loop on obscure bias compute
New code produces same result without loop at all, so
it cannot fall in infinite loop, and it is faster in
use cases requiring more than one loop in previous code.
The Unvanquished vega map is known to trigger the bug:
https://github.com/UnvanquishedAssets/map-vega_src.dpkdir
I reproduced it multiple time on various hardware (8 core FX-9590,
12 core/24 thread Ryzen 9 3900X) with commit af40508 and using
final compilation profile edited to use -fastbounce instead
of -fast option.
Garux [Wed, 25 Mar 2020 18:21:07 +0000 (21:21 +0300)]
q3map2 * fix: do not affect styled lightmaps by floodlight
port of https://github.com/id-tech-3-tools/map-compiler/pull/12
https://github.com/id-tech-3-tools/map-compiler/commit/87b8589a3a5069c482243bb33c587fc18911746c
Thomas Debesse [Thu, 21 May 2020 22:43:20 +0000 (00:43 +0200)]
radiant/image: load fallback images with png loader even if game does not support png, fix #141
Current implementation has a minor issue, when "Hide Fallback" option is
disabled, the fallback image does not appear in texture browser before radiant
makes use of it (for example creating a brush before selecting a texture).
Since "Hide Fallback" option is enabled by default and it never makes sense
to apply those fallback intentionally, I don't care for the moment.
I would like to see a better implementation that would work for all
editor images (like the one set with `qer_editorImage` shader keyword).
Thomas Debesse [Thu, 21 May 2020 18:22:26 +0000 (20:22 +0200)]
radiant/vfs: rework vfs loading, attempt to load wads and paks, ref #139
Also load .pak extracted as .pakdir (can be done using unpak).
NOTE: that feature would have to be supported by map compilers to
be useful. This is still handy for testing purpose so I'm keeping it.
Also prints on console the opened pak directories.
Azamat H. Hackimov [Thu, 21 May 2020 01:08:39 +0000 (04:08 +0300)]
Fixing compilation with -DBUILD_SHARED_LIBS=ON
Libraries under libs should be forced STATIC since there circular
dependencies and implicit linking with external libraries. Otherwise
compilation will fails with underlinking errors.