]> git.rm.cloudns.org Git - xonotic/netradiant.git/log
xonotic/netradiant.git
4 years agointroduce safe_malloc0, also 0 the memory before usage
Thomas Debesse [Tue, 14 Jan 2020 05:17:15 +0000 (06:17 +0100)]
introduce safe_malloc0, also 0 the memory before usage

note called safe_calloc because calloc does not have the same syntax
and this safe_malloc0 uses malloc syntax

4 years agounnecessary SAFE_MALLOC ifdef: always defined
Thomas Debesse [Tue, 14 Jan 2020 05:12:06 +0000 (06:12 +0100)]
unnecessary SAFE_MALLOC ifdef: always defined

4 years agovalgrind: Conditional jump or move depends on uninitialised value
Thomas Debesse [Tue, 14 Jan 2020 04:47:47 +0000 (05:47 +0100)]
valgrind: Conditional jump or move depends on uninitialised value

4 years agofix a buffer overflow due to a string not being large enough to store ending \0
Thomas Debesse [Tue, 14 Jan 2020 04:39:45 +0000 (05:39 +0100)]
fix a buffer overflow due to a string not being large enough to store ending \0

4 years agoMerge branch 'easy-builder' into 'master'
Thomas Debesse [Mon, 20 Jan 2020 19:52:02 +0000 (19:52 +0000)]
Merge branch 'easy-builder' into 'master'

introduce easy-builder script

See merge request xonotic/netradiant!157

4 years agoupdate readme
Thomas Debesse [Sat, 16 Nov 2019 15:42:01 +0000 (16:42 +0100)]
update readme

4 years agoadd simple easy-builder script
Thomas Debesse [Tue, 12 Nov 2019 09:34:49 +0000 (10:34 +0100)]
add simple easy-builder script

4 years agofail library-bundler script on error
Thomas Debesse [Tue, 12 Nov 2019 08:24:20 +0000 (09:24 +0100)]
fail library-bundler script on error

4 years agoenable crunch if available
Thomas Debesse [Tue, 12 Nov 2019 07:31:04 +0000 (08:31 +0100)]
enable crunch if available

5 years agocrn_rgba: use “algorithm” header to avoid std::min/max being unknown
Thomas Debesse [Wed, 25 Dec 2019 19:22:59 +0000 (20:22 +0100)]
crn_rgba: use “algorithm” header to avoid std::min/max being unknown

avoid this error on some systems (Clang on macOS or FreeBSD):

netradiant/libs/crnrgba/crn_rgba.cpp:93:38: error: no
      member named 'max' in namespace 'std'
    const crn_uint32 blocks_x = std::max(1U, (ti.m_width + 3) >> 2);

5 years agoMerge branch 'illwieckz/gcclt7' into 'master'
Thomas Debesse [Wed, 25 Dec 2019 17:41:48 +0000 (17:41 +0000)]
Merge branch 'illwieckz/gcclt7' into 'master'

Fix compiling using GCC older than 7, obsolete !143, fix #122, <3 @zturtleman, bananovenc

Closes #122

See merge request xonotic/netradiant!159

5 years agoFix compiling using GCC older than 7, obsolete !143, fix #122, <3 @zturtleman, bananovenc 159/head
Thomas Debesse [Wed, 25 Dec 2019 03:07:10 +0000 (04:07 +0100)]
Fix compiling using GCC older than 7, obsolete !143, fix #122, <3 @zturtleman, bananovenc

5 years agoMerge branch 'fixpng' into 'master'
Thomas Debesse [Sat, 7 Dec 2019 04:12:31 +0000 (04:12 +0000)]
Merge branch 'fixpng' into 'master'

radiant: redo 6011367 (!102), fix alpha channel for tRNS cheap transparency PNG

See merge request xonotic/netradiant!158

5 years agoradiant: redo 6011367, fix alpha channel for tRNS cheap transparency PNG 158/head
Thomas Debesse [Sat, 7 Dec 2019 03:38:39 +0000 (04:38 +0100)]
radiant: redo 6011367, fix alpha channel for tRNS cheap transparency PNG

5 years agoMerge branch 'packonce' into 'master'
Thomas Debesse [Sun, 13 Oct 2019 02:53:43 +0000 (02:53 +0000)]
Merge branch 'packonce' into 'master'

q3map2/light: add option to only store lightmaps on very last bounce, q3map2/bsp: add fast meta option

See merge request xonotic/netradiant!156

5 years agoq3map2/bsp: introduce -fastmeta option 156/head
Thomas Debesse [Sun, 22 Sep 2019 08:48:48 +0000 (10:48 +0200)]
q3map2/bsp: introduce -fastmeta option

set lightmap and surface verts and indexes values like quake3, known to be fast

equivalent to:
-maxlightmapverts 64 -maxsurfaceverts 999 -maxsurfaceindexes 6000

5 years agoq3map2/bsp: introduce -maxsurfacevertices, rename -mv and -mi
Thomas Debesse [Sun, 22 Sep 2019 08:09:43 +0000 (10:09 +0200)]
q3map2/bsp: introduce -maxsurfacevertices, rename -mv and -mi

- introduce -maxsurfaceverts (was missing as command line option)
- rename -mv to -maxlightmapvertices
- rename -mi to -maxsurfaceindexes

5 years agoq3map2/light: introduce -nobouncestore
Thomas Debesse [Sun, 22 Sep 2019 00:16:08 +0000 (02:16 +0200)]
q3map2/light: introduce -nobouncestore

when storing computed lightmap on each bounce, user can interrupt compilation and
get working files, but it spends allocation time (which is slow and single-threaded

with this option, user can decide to only allocate lightmaps on the very final
bounce, it means it can't be interrupted, but it can save a lot of time

5 years agoq3map2/light: rename -fastallocate to -fastlightmapsearch
Thomas Debesse [Sun, 22 Sep 2019 00:24:08 +0000 (02:24 +0200)]
q3map2/light: rename -fastallocate to -fastlightmapsearch

5 years agoMerge branch 'deprecate-makefile' into 'master'
Thomas Debesse [Sun, 13 Oct 2019 00:57:37 +0000 (00:57 +0000)]
Merge branch 'deprecate-makefile' into 'master'

deprecate the legacy Makefile

See merge request xonotic/netradiant!138

5 years agomakefile: remind future ourselves that conftest.cpp belongs to the legacy Makefile
Thomas Debesse [Sun, 13 Oct 2019 00:52:52 +0000 (02:52 +0200)]
makefile: remind future ourselves that conftest.cpp belongs to the legacy Makefile

5 years agomakefile: move conftest.cpp back right to legacy Makefile since it's required by it
Thomas Debesse [Sun, 13 Oct 2019 00:50:27 +0000 (02:50 +0200)]
makefile: move conftest.cpp back right to legacy Makefile since it's required by it

5 years agomakefile: deprecate the legacy Makefile
Thomas Debesse [Fri, 5 Jul 2019 01:45:26 +0000 (03:45 +0200)]
makefile: deprecate the legacy Makefile

requires make to be called this way:

make I_KNOW_MAKEFILE_IS_DEPRECATED=1

5 years agoMerge branch 'restart' into 'master'
Thomas Debesse [Sat, 12 Oct 2019 21:38:40 +0000 (21:38 +0000)]
Merge branch 'restart' into 'master'

do not prompt for game when restarting after switching game, <3 @Garux

See merge request xonotic/netradiant!155

5 years agoimport some improvements from garux tree
Thomas Debesse [Sat, 12 Oct 2019 21:34:24 +0000 (23:34 +0200)]
import some improvements from garux tree

see https://github.com/Garux/netradiant-custom/commit/1a18246a1fcb08ad15da046382684f7754d6aae1

5 years agofix cancel button
Thomas Debesse [Sat, 12 Oct 2019 21:25:15 +0000 (23:25 +0200)]
fix cancel button

5 years agodo not remember game was switched when selected at startup, <3 @Garux
Thomas Debesse [Sat, 14 Sep 2019 18:47:22 +0000 (20:47 +0200)]
do not remember game was switched when selected at startup, <3 @Garux

5 years agodo not prompt for game when restarting after switching game, <3 @Garux
Thomas Debesse [Thu, 5 Sep 2019 21:23:10 +0000 (23:23 +0200)]
do not prompt for game when restarting after switching game, <3 @Garux

5 years agoMerge branch 'cleanup' into 'master'
Thomas Debesse [Thu, 8 Aug 2019 00:00:43 +0000 (00:00 +0000)]
Merge branch 'cleanup' into 'master'

some cleanup to make the repository cooler

See merge request xonotic/netradiant!146

5 years agoreadme: lots of improvements
Thomas Debesse [Tue, 23 Jul 2019 05:16:57 +0000 (07:16 +0200)]
readme: lots of improvements

- compatibility matrix
- Ubuntu build requirements
- a lot of rewrites

5 years agocleanup: make appveyor file an hidden dot file
Thomas Debesse [Tue, 23 Jul 2019 04:28:34 +0000 (06:28 +0200)]
cleanup: make appveyor file an hidden dot file

5 years agocleanup: move old stuff to oldstuff/
Thomas Debesse [Tue, 23 Jul 2019 04:28:16 +0000 (06:28 +0200)]
cleanup: move old stuff to oldstuff/

also move in the old COMPILING file that was deleted in 8ac6cfa

We may decide later what to do with them

5 years agoMerge branch 'bundle' into 'master'
Thomas Debesse [Wed, 7 Aug 2019 23:44:45 +0000 (23:44 +0000)]
Merge branch 'bundle' into 'master'

more bundling fixes and improvements, <3 @SpiKe @Calinou

See merge request xonotic/netradiant!154

5 years agobundle: make linux bundle that is known to work on both Ubuntu, Arch and Fedora,... 154/head
Thomas Debesse [Wed, 7 Aug 2019 18:42:10 +0000 (20:42 +0200)]
bundle: make linux bundle that is known to work on both Ubuntu, Arch and Fedora, <3 @SpiKe @Calinou

5 years agobundle: fix some minor mistakes (had no bad consequences)
Thomas Debesse [Wed, 7 Aug 2019 18:46:53 +0000 (20:46 +0200)]
bundle: fix some minor mistakes (had no bad consequences)

produced the same bundle, but with error messages at build time, and some actions uselessly done more than once

5 years agoMerge branch 'bundle' into 'master'
Thomas Debesse [Mon, 5 Aug 2019 18:57:11 +0000 (18:57 +0000)]
Merge branch 'bundle' into 'master'

last-minute bundling fixes, <3 @SpiKe

See merge request xonotic/netradiant!153

5 years agocmake: fix a mistake introduced while revamping bundling code, <3 @SpiKe 153/head
Thomas Debesse [Mon, 5 Aug 2019 18:53:52 +0000 (20:53 +0200)]
cmake: fix a mistake introduced while revamping bundling code, <3 @SpiKe

5 years agobundle: do not bundle libstdc++, pango, and some remaining X11 stuff on Linux
Thomas Debesse [Mon, 5 Aug 2019 18:07:29 +0000 (20:07 +0200)]
bundle: do not bundle libstdc++, pango, and some remaining X11 stuff on Linux

- it's a bad idea to bundle libstdc++ as it may conflict in non-obvious manner
  (like failing on X11 stuff)
- pango is known to conflict with newer distros
- no need to bundle libICE and libSM since we expect user to have a working x11 install

5 years agoMerge branch 'bundle' into 'master'
Thomas Debesse [Mon, 5 Aug 2019 17:02:16 +0000 (17:02 +0000)]
Merge branch 'bundle' into 'master'

factorize the bundling code then implement linux library bundling

See merge request xonotic/netradiant!151

5 years agobundle: do not bundle gtk and other deps on linux 151/head
Thomas Debesse [Mon, 5 Aug 2019 03:02:55 +0000 (05:02 +0200)]
bundle: do not bundle gtk and other deps on linux

- gtk is not easily bundlable on linux because it looks for harcoded system path to optional
  shared libraries like image codecs, theme engines, sound notification system, etc.
  so expect user to install gtk first
- since we ask user to instal gtk, we can also ask them to install gtkglext,
  which is likely to pull gtk itself, x11 and gl dependencies
- old fontconfig does not work correctly if newer fontconfig configuration is installed
- if gtk and fontconfig is installed, freetype is

5 years agobundle: more linux bundling
Thomas Debesse [Mon, 5 Aug 2019 01:27:37 +0000 (03:27 +0200)]
bundle: more linux bundling

5 years agobundle: linux shared lib bundling
Thomas Debesse [Thu, 1 Aug 2019 19:15:08 +0000 (21:15 +0200)]
bundle: linux shared lib bundling

- always rely on up-to-date x11 and gl libraries, bundling them will break on future distros

5 years agobundle: a bunch of improvements
Thomas Debesse [Thu, 1 Aug 2019 19:20:23 +0000 (21:20 +0200)]
bundle: a bunch of improvements

5 years agobundle: chmod +x library-bundler
Thomas Debesse [Thu, 1 Aug 2019 20:30:27 +0000 (22:30 +0200)]
bundle: chmod +x library-bundler

5 years agocmake: BUNDLE_LIBRARIES disables FHS_INSTALL
Thomas Debesse [Thu, 1 Aug 2019 22:28:49 +0000 (00:28 +0200)]
cmake: BUNDLE_LIBRARIES disables FHS_INSTALL

5 years agobikeshedding: spacing
Thomas Debesse [Thu, 1 Aug 2019 19:15:34 +0000 (21:15 +0200)]
bikeshedding: spacing

5 years agoMerge branch 'floating' into 'master'
Thomas Debesse [Sun, 4 Aug 2019 19:38:19 +0000 (19:38 +0000)]
Merge branch 'floating' into 'master'

floating window: use HINT_UTILITY on Windows but normal window everywhere else, <3 @SpiKe, ref !140 !147

See merge request xonotic/netradiant!152

5 years agofloating window: use HINT_UTILITY on Windows but normal window everywhere else, ref... 152/head
Thomas Debesse [Sun, 4 Aug 2019 19:29:24 +0000 (21:29 +0200)]
floating window: use HINT_UTILITY on Windows but normal window everywhere else, ref !140 !147

GDK_WINDOW_TYPE_HINT_UTILITY would have been a good option for any OS but KDE is known to be broken (such window is not put in focus).

We must use GDK_WINDOW_TYPE_HINT_UTILITY on Windows to be sure the window is resizeable and to avoid the infinite minimize-restore loop.

<3 @SpiKe

5 years agoMerge branch 'kingpin' into 'master'
Thomas Debesse [Sat, 27 Jul 2019 20:21:53 +0000 (20:21 +0000)]
Merge branch 'kingpin' into 'master'

add Kingpin gamepack

See merge request xonotic/netradiant!149

5 years agoadd Kingpin gamepack 149/head
Thomas Debesse [Wed, 24 Jul 2019 23:22:07 +0000 (01:22 +0200)]
add Kingpin gamepack

5 years agoMerge branch 'q3map2-cmdline-help' into 'master'
Thomas Debesse [Sat, 27 Jul 2019 20:15:35 +0000 (20:15 +0000)]
Merge branch 'q3map2-cmdline-help' into 'master'

q3map2: add more to q3map2 -help and fix some issues with command-line processing

See merge request xonotic/netradiant!150

5 years agoq3map2: add missing help for q3map2 stage arguments 150/head
Zack Middleton [Wed, 24 Jul 2019 06:24:09 +0000 (01:24 -0500)]
q3map2: add missing help for q3map2 stage arguments

Move -keeplights help from -light stage to -bsp. Add other ~40 arguments
that were missing from help. My main focus was on the -convert stage
but I tried to document the rest as well. Some descriptions are copied
from message when enabling the option.

5 years agoq3map2: fix crash if command-line argument is missing
Zack Middleton [Wed, 24 Jul 2019 06:11:58 +0000 (01:11 -0500)]
q3map2: fix crash if command-line argument is missing

Running `q3map2 -fs_forbiddenpath -v mapname.map` would crash because
-v gets replaced with NULL in main().

Running `q3map2 -threads` would crash because missing next argument
for number of threads.

5 years agoq3map2: fix not displaying default args for some q3map2 stages
Zack Middleton [Tue, 23 Jul 2019 04:50:17 +0000 (23:50 -0500)]
q3map2: fix not displaying default args for some q3map2 stages

Fix not displaying default arguments, and possibly segfaulting, when
running q3map2 -bsp, -analyze, -convert, -exportents, -export, or
-import.

5 years agoMerge branch 'radiant-cmdline-null-mapname' into 'master'
Thomas Debesse [Tue, 23 Jul 2019 23:19:47 +0000 (23:19 +0000)]
Merge branch 'radiant-cmdline-null-mapname' into 'master'

radiant: fix command-line error message for non-map filename

See merge request xonotic/netradiant!148

5 years agoradiant: fix command-line error message for non-map filename 148/head
Zack Middleton [Tue, 23 Jul 2019 20:32:47 +0000 (15:32 -0500)]
radiant: fix command-line error message for non-map filename

mapname wasn't set so "(null)" was printed.

Fixes 6ba43753 ("radiant: fix command-line opening on windows").

5 years agoMerge branch 'floating' into 'master'
Thomas Debesse [Tue, 23 Jul 2019 19:57:27 +0000 (19:57 +0000)]
Merge branch 'floating' into 'master'

make floating windows resizable on Windows, ref !140

See merge request xonotic/netradiant!147

5 years agomake floating windows resizable on Windows, ref !140 147/head
Thomas Debesse [Tue, 23 Jul 2019 19:47:14 +0000 (21:47 +0200)]
make floating windows resizable on Windows, ref !140

“hint menu” windows are resizeable on Linux but not on Windows,
that's why it's better to use the “hint utility” type instead.

5 years agoMerge branch 'readme-no-redownload' into 'master'
Thomas Debesse [Tue, 23 Jul 2019 04:13:05 +0000 (04:13 +0000)]
Merge branch 'readme-no-redownload' into 'master'

add how to avoid redownloading gamepacks to README.md

See merge request xonotic/netradiant!145

5 years agoadd how to avoid redownloading gamepacks to README.md 145/head
Zack Middleton [Tue, 23 Jul 2019 03:42:30 +0000 (22:42 -0500)]
add how to avoid redownloading gamepacks to README.md

5 years agoMerge branch 'bintarget' into 'master'
Thomas Debesse [Tue, 23 Jul 2019 03:23:49 +0000 (03:23 +0000)]
Merge branch 'bintarget' into 'master'

add a "binaries" target, fix #135, <3 @zturtleman

Closes #135

See merge request xonotic/netradiant!144

5 years agoadd a "binaries" target, fix #135, <3 @zturtleman 144/head
Thomas Debesse [Tue, 23 Jul 2019 02:21:22 +0000 (04:21 +0200)]
add a "binaries" target, fix #135, <3 @zturtleman

add a "binaries" target to be able to rebuild everything without
redownloading gamepacks

5 years agoMerge branch 'cleanup' into 'master'
Thomas Debesse [Tue, 23 Jul 2019 02:20:57 +0000 (02:20 +0000)]
Merge branch 'cleanup' into 'master'

some clean up

Closes #134

See merge request xonotic/netradiant!142

5 years agorename game_packs target to gamepacks 142/head
Thomas Debesse [Tue, 23 Jul 2019 02:07:14 +0000 (04:07 +0200)]
rename game_packs target to gamepacks

5 years agoradiant target is now named netradiant, fix #134
Thomas Debesse [Tue, 23 Jul 2019 02:06:46 +0000 (04:06 +0200)]
radiant target is now named netradiant, fix #134

also mention the BUNDLE_LIBRARIES cmake option, ref #133

5 years agodelete the COMPILING file as it is heavily outdated
Thomas Debesse [Mon, 22 Jul 2019 02:24:16 +0000 (04:24 +0200)]
delete the COMPILING file as it is heavily outdated

- macos instructions were not edited in 4 years
- linux and windows instructions were not edited in 9 years

and almost everything in this file is now obsolete or wrong

build instructions in README.md file are meant to be up to date

5 years agoMerge branch 'restart' into 'master'
Thomas Debesse [Mon, 22 Jul 2019 02:10:03 +0000 (02:10 +0000)]
Merge branch 'restart' into 'master'

make radiant able to restart itself when required, ask user to

See merge request xonotic/netradiant!141

5 years agobikeshedding: some wording 141/head
Thomas Debesse [Sun, 14 Jul 2019 00:57:54 +0000 (02:57 +0200)]
bikeshedding: some wording

5 years agoradiant: make restart notification a question
Thomas Debesse [Sun, 14 Jul 2019 06:19:51 +0000 (08:19 +0200)]
radiant: make restart notification a question

thanks to latched variable mechanism
people can chose to not restart immediately

5 years agoradiant: restart on game change
Thomas Debesse [Sun, 14 Jul 2019 06:05:00 +0000 (08:05 +0200)]
radiant: restart on game change

ask user to restart radiant on game change

5 years agoradiant: restart on latched preference change
Thomas Debesse [Sun, 14 Jul 2019 15:37:02 +0000 (17:37 +0200)]
radiant: restart on latched preference change

5 years agoradiant: code to make radiant able to restart itself
Thomas Debesse [Sun, 14 Jul 2019 00:53:50 +0000 (02:53 +0200)]
radiant: code to make radiant able to restart itself

- save preferences
- check for map being modified (this asks user for saving if not yet saved)
- check for a map being currently edited
- start a new instance, with the current map as parameter if exists
- quit current instance if new instance started correctly

5 years agoradiant: get own radiant executable file path
Thomas Debesse [Sun, 14 Jul 2019 00:35:17 +0000 (02:35 +0200)]
radiant: get own radiant executable file path

previous code was getting it to compute app_path, lib_path and data_path
but was not keeping the value

5 years agoradiant: fix command-line opening on windows
Thomas Debesse [Sun, 14 Jul 2019 04:06:08 +0000 (06:06 +0200)]
radiant: fix command-line opening on windows

clean-up windows path, especially use '/' instead of '\'
as directory separator since since radiant is hardcoded
to use an lookup for '/' anywhere.

5 years agoMerge branch 'floating' into 'master'
Thomas Debesse [Mon, 22 Jul 2019 02:08:35 +0000 (02:08 +0000)]
Merge branch 'floating' into 'master'

gtk2: do not make floating windows minimizable

See merge request xonotic/netradiant!140

5 years agogtk2: do not make floating windows minimizable
Thomas Debesse [Sat, 13 Jul 2019 20:56:48 +0000 (22:56 +0200)]
gtk2: do not make floating windows minimizable

First, this feature leads to an horrible behavior on
Windows where the application ends in a loop of endless
minimization and restoration, probably because the window
manager minimizes or restores the whole application once
a floating window in minimized or restored, leading to a
race condition between all floating windows, some being
minimized and others being restored at the same time,
triggering the minimization and the restoration of the
others, and so on. It's difficult to say such issue
will never happen on other OS or with some window manager.

Second, those floating windows are expected to be displayed
or hidden using menu or keyboard shortcut, it's a design
choice. Then the OS-specific way to minimize/restore them
is superflous and less efficient.

Finally, the mainframe is not created as a floating window
so the user minimizes the application by minimizing the
mainframe.

5 years agoMerge branch 'heretic2' into 'master'
Thomas Debesse [Sat, 13 Jul 2019 18:06:23 +0000 (18:06 +0000)]
Merge branch 'heretic2' into 'master'

heretic2: use a dedicated heretic subdirectory for Heretic 2 stuff, and more

See merge request xonotic/netradiant!139

5 years agoreadme: update target related help 139/head
Thomas Debesse [Fri, 5 Jul 2019 22:55:35 +0000 (00:55 +0200)]
readme: update target related help

5 years agotools/heretic2: also make q2map a required target
Thomas Debesse [Sat, 13 Jul 2019 17:56:14 +0000 (19:56 +0200)]
tools/heretic2: also make q2map a required target

5 years agomakefile: install heretic2 stuff like cmake does
Thomas Debesse [Fri, 5 Jul 2019 23:37:23 +0000 (01:37 +0200)]
makefile: install heretic2 stuff like cmake does

5 years agotools/heretic2: print h2data instead of qdata in messages
Thomas Debesse [Fri, 5 Jul 2019 22:44:24 +0000 (00:44 +0200)]
tools/heretic2: print h2data instead of qdata in messages

5 years agotools/heretic2: move heretic2 stuff to its own directory
Thomas Debesse [Fri, 5 Jul 2019 22:33:50 +0000 (00:33 +0200)]
tools/heretic2: move heretic2 stuff to its own directory

5 years agoMerge branch 'winconsole' into 'master'
Thomas Debesse [Fri, 5 Jul 2019 22:07:54 +0000 (22:07 +0000)]
Merge branch 'winconsole' into 'master'

make tools target the console subsystem on Windows

See merge request xonotic/netradiant!137

5 years agocmake: do not use WIN32 for console tools 137/head
Thomas Debesse [Fri, 5 Jul 2019 20:25:34 +0000 (22:25 +0200)]
cmake: do not use WIN32 for console tools

allow them to output stdout on console and spawn a console if required

it's not very intuitive and explicit but the WIN32 cmake keyword
in add_executable call is to not target the console subsystem but
only the graphical one

so console tools just have to not use that keyword, even if they imay
display a window like when doing q2map -glview

then the WIN32 keyword is a kind of “no console” keyword

5 years agocmake: make tools target the console subsystem on Windows
Thomas Debesse [Thu, 4 Jul 2019 23:57:34 +0000 (01:57 +0200)]
cmake: make tools target the console subsystem on Windows

previously on Windows the stdout stuff was only printed on MinTTY console or SSH shell,
this change makes the tools to target the console subsystem so they also print stdout
on cmd console.

this also makes the tool spawning a cmd console windows when not started from a console,
allowing people to monitor what is printed.

this is done by adding a console_app() cmake macro that enables the -mconsole linker flag.
For exhaustivity an extraneous window_app() macro is done too that enables the -mwindows
flag. The -mwindows looks to be implicit, but making this macro explicit and using it
keeps the CMakeLists.txt file self documenting which exe has to be compiled with -mconsole,
which one has to be compiled with -mwindows, and which one has to be compiled with both.

this is a way to check if an exe targets only the windows subsystem:

$ objdump -p netradiant.exe | egrep '^Subsystem'
Subsystem 00000002 (Windows GUI)

this is a way to check if an exe targets the console subsystem:

$ objdump -p q3map2.exe | egrep '^Subsystem'
Subsystem 00000003 (Windows CUI)

note that this one targets both console and windows subsystem, only console is reported:

$ objdump -p q2map.exe | egrep '^Subsystem'
Subsystem 00000003 (Windows CUI)

5 years agoMerge branch 'bundle' into 'master'
Thomas Debesse [Mon, 24 Jun 2019 19:02:41 +0000 (19:02 +0000)]
Merge branch 'bundle' into 'master'

improve lib and other stuff bundling on windows

See merge request xonotic/netradiant!136

5 years agobundle: store dll in lib subdirectory, bundle all of them at once 136/head
Thomas Debesse [Wed, 19 Jun 2019 18:45:53 +0000 (20:45 +0200)]
bundle: store dll in lib subdirectory, bundle all of them at once

instead of finding and copying the dll each time a binary is produced,
the path of the produced binary is stored in a unique file (to avoid race
condition) and the target for that binary is added as a dependency to a new
target named `bundle` that does the finding and the copying once for all.

this avoids race condition while building targets in parallel, workaround
the inability of cmake to track a common list between all targets and to keep
it from configure to build step

this makes the bundle process more reliable and avoid things being copied
twice. Before that I've seen copy processes starting to copy the same file
even with the -n option telling to not copy if the file exists, then seeing
one of them failing because they both started when the file was not yet
copied but one finished the copy before the other one

this also makes the bundling faster by only doing things once for all

the dll are then moved to a lib/ subdirectory instead of the root
of the buld directory

each binary having dll to find and copy is built with a special resource file
embedding a manifest telling there is an assembly directory containing dll
named lib, then a manifest is writen for that assembly directory listing all
the dll it can find there telling windows to look for them there at binary
loading instead of the system directory and the place right to binary

this:

- helps to ensure the right dll is loaded even if another exists
  with the same name on the system
- reduce the mess by storing all dll in one dedicated directory
- avoids the double cmake configure run by removing the need to
  glob the build directory before installation

5 years agobundle: also bundle hicolor icons with libgtk
Thomas Debesse [Tue, 18 Jun 2019 21:06:14 +0000 (23:06 +0200)]
bundle: also bundle hicolor icons with libgtk

5 years agobundle: export gtk theme/engine bundle code to the script
Thomas Debesse [Mon, 17 Jun 2019 23:01:18 +0000 (01:01 +0200)]
bundle: export gtk theme/engine bundle code to the script

now triggered on libgtk bundling

5 years agobundle: use ntldd on msys2 instead of ldd to enable 32bit build on 64bit os
Thomas Debesse [Mon, 17 Jun 2019 22:15:11 +0000 (00:15 +0200)]
bundle: use ntldd on msys2 instead of ldd to enable 32bit build on 64bit os

5 years agobundle: export lib bundling code to a standalone script
Thomas Debesse [Mon, 17 Jun 2019 21:33:59 +0000 (23:33 +0200)]
bundle: export lib bundling code to a standalone script

5 years agoMerge branch 'wingtk2gl' into 'master'
Thomas Debesse [Tue, 18 Jun 2019 22:01:05 +0000 (22:01 +0000)]
Merge branch 'wingtk2gl' into 'master'

workaround the GTK2 GLWidget bug on Windows, fix #64

Closes #64

See merge request xonotic/netradiant!133

5 years agoworkaround the GTK2 GLWidget bug on Windows 133/head
Thomas Debesse [Sun, 16 Jun 2019 15:40:08 +0000 (17:40 +0200)]
workaround the GTK2 GLWidget bug on Windows

5 years agoMerge branch 'quake2' into 'master'
Thomas Debesse [Tue, 18 Jun 2019 21:38:06 +0000 (21:38 +0000)]
Merge branch 'quake2' into 'master'

cmake: building quake2 and heretic2 tools to be on par with legacy makefile

See merge request xonotic/netradiant!134

5 years agoicons: some touchup 134/head
Thomas Debesse [Sun, 16 Jun 2019 23:35:07 +0000 (01:35 +0200)]
icons: some touchup

5 years agoheretic2: remove stale file
Thomas Debesse [Sun, 16 Jun 2019 23:34:48 +0000 (01:34 +0200)]
heretic2: remove stale file

5 years agoh2data: fix build on macos
Thomas Debesse [Sun, 16 Jun 2019 23:07:57 +0000 (01:07 +0200)]
h2data: fix build on macos

5 years agocmake: build quake2 and heretic2 tools to be on par with legacy Makefile
Thomas Debesse [Sun, 16 Jun 2019 23:07:16 +0000 (01:07 +0200)]
cmake: build quake2 and heretic2 tools to be on par with legacy Makefile

5 years agoMerge branch 'gamepacks' into 'master'
Thomas Debesse [Tue, 18 Jun 2019 21:36:05 +0000 (21:36 +0000)]
Merge branch 'gamepacks' into 'master'

gamepacks: install them in a gamepacks/ subdirectory

See merge request xonotic/netradiant!135

5 years agogamepacks: install them in a gamepacks/ subdirectory 135/head
Thomas Debesse [Mon, 17 Jun 2019 19:42:42 +0000 (21:42 +0200)]
gamepacks: install them in a gamepacks/ subdirectory