diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 57bffc4da..a823e417d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required( VERSION 3.16.0 ) +cmake_minimum_required( VERSION 3.24.0 ) include(precompiled_headers) @@ -1312,8 +1312,9 @@ add_dependencies( zdoom zengine ) add_dependencies( ztool zengine ) target_link_libraries( zengine ${PROJECT_LIBRARIES} lzma ${ZMUSIC_LIBRARIES} ) -target_link_libraries( zdoom zengine ) -target_link_libraries( ztool zengine ) + +target_link_libraries( zdoom "$" ) +target_link_libraries( ztool "$" ) # Due to some quirks, we need to do this in this order if( NOT ZDOOM_OUTPUT_OLDSTYLE ) diff --git a/src/common/cutscenes/movieplayer.cpp b/src/common/cutscenes/movieplayer.cpp index bfe5cf7b9..a1b04385f 100644 --- a/src/common/cutscenes/movieplayer.cpp +++ b/src/common/cutscenes/movieplayer.cpp @@ -52,8 +52,6 @@ #include #include "filereadermusicinterface.h" -void LinkMoviePlayer() { } - class MoviePlayer { protected: diff --git a/src/common/engine/date.cpp b/src/common/engine/date.cpp index 452b31dbf..63e3776b7 100644 --- a/src/common/engine/date.cpp +++ b/src/common/engine/date.cpp @@ -40,7 +40,6 @@ time_t epochoffset = 0; // epoch start in seconds (0 = January 1st, 1970) -void LinkDate() { } //========================================================================== // diff --git a/src/common/objects/autosegs.cpp b/src/common/objects/autosegs.cpp index 49408dc0b..e9b3f935f 100644 --- a/src/common/objects/autosegs.cpp +++ b/src/common/objects/autosegs.cpp @@ -81,28 +81,6 @@ AUTOSEG_VARIABLE(CVarDecl, AUTOSEG_VREG) #undef AUTOSEG_STOP #undef AUTOSEG_START -void LinkVMThunksActors(); -void LinkVMIterators(); -void LinkDynArrays(); -void LinkMaps(); -void LinkDate(); -void LinkPPShader(); -void LinkMoviePlayer(); -void LinkPlayermenu(); - -void LinkUnreferencedZScriptGlobals() -{ - // The linker in C++ only links .obj files from static libraries that it can find direct references to. - // Some source files contain no external references so we have to force the linkage. - LinkVMThunksActors(); - LinkVMIterators(); - LinkDynArrays(); - LinkMaps(); - LinkDate(); - LinkPPShader(); - LinkMoviePlayer(); - LinkPlayermenu(); -} void FAutoSeg::Initialize() { diff --git a/src/common/rendering/hwrenderer/postprocessing/hw_postprocessshader.cpp b/src/common/rendering/hwrenderer/postprocessing/hw_postprocessshader.cpp index d9534a3d4..0e2b8d8cf 100644 --- a/src/common/rendering/hwrenderer/postprocessing/hw_postprocessshader.cpp +++ b/src/common/rendering/hwrenderer/postprocessing/hw_postprocessshader.cpp @@ -23,8 +23,6 @@ #include "hwrenderer/postprocessing/hw_postprocessshader.h" #include "hwrenderer/postprocessing/hw_postprocess.h" -void LinkPPShader() { } - static void ShaderSetEnabled(const FString &shaderName, bool value) { for (unsigned int i = 0; i < PostProcessShaders.Size(); i++) diff --git a/src/common/scripting/core/dynarrays.cpp b/src/common/scripting/core/dynarrays.cpp index b0d458062..207c91fbc 100644 --- a/src/common/scripting/core/dynarrays.cpp +++ b/src/common/scripting/core/dynarrays.cpp @@ -39,8 +39,6 @@ #include "types.h" #include "v_draw.h" -void LinkDynArrays() { } - // We need one specific type for each of the 8 integral VM types and instantiate the needed functions for each of them. // Dynamic arrays cannot hold structs because for every type there'd need to be an internal implementation which is impossible. diff --git a/src/common/scripting/core/maps.cpp b/src/common/scripting/core/maps.cpp index 16760ce88..bed5110de 100644 --- a/src/common/scripting/core/maps.cpp +++ b/src/common/scripting/core/maps.cpp @@ -6,7 +6,6 @@ #include "v_draw.h" #include "maps.h" -void LinkMaps() { } //========================================================================== // diff --git a/src/gamemain.cpp b/src/gamemain.cpp index 79c3916a9..934e4b50b 100644 --- a/src/gamemain.cpp +++ b/src/gamemain.cpp @@ -1,6 +1,4 @@ -void LinkUnreferencedZScriptGlobals(); - #if defined(WIN32) #define WIN32_MEAN_AND_LEAN @@ -10,7 +8,6 @@ int I_GameMain(HINSTANCE hInstance, HINSTANCE nothing, LPWSTR cmdline, int nCmdS int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE nothing, LPWSTR cmdline, int nCmdShow) { - LinkUnreferencedZScriptGlobals(); return I_GameMain(hInstance, nothing, cmdline, nCmdShow); } @@ -20,7 +17,6 @@ int I_GameMain(int argc, char** argv); int main(int argc, char** argv) { - LinkUnreferencedZScriptGlobals(); return I_GameMain(argc, argv); } diff --git a/src/menu/playermenu.cpp b/src/menu/playermenu.cpp index ae0303368..07192a2d9 100644 --- a/src/menu/playermenu.cpp +++ b/src/menu/playermenu.cpp @@ -41,8 +41,6 @@ #include "vm.h" #include "d_player.h" -void LinkPlayermenu() { } - EXTERN_CVAR(Int, team) EXTERN_CVAR(Float, autoaim) EXTERN_CVAR(Bool, neverswitchonpickup) diff --git a/src/scripting/vmiterators.cpp b/src/scripting/vmiterators.cpp index f7938a435..32d1ca1f8 100644 --- a/src/scripting/vmiterators.cpp +++ b/src/scripting/vmiterators.cpp @@ -30,8 +30,6 @@ #include "g_levellocals.h" #include "vm.h" -void LinkVMIterators() { } - //========================================================================== // // scriptable thinker iterator diff --git a/src/scripting/vmthunks_actors.cpp b/src/scripting/vmthunks_actors.cpp index 9e257ffe9..2cf04fd80 100644 --- a/src/scripting/vmthunks_actors.cpp +++ b/src/scripting/vmthunks_actors.cpp @@ -57,8 +57,6 @@ #include "gi.h" #include "shadowinlines.h" -void LinkVMThunksActors() { } - DVector2 AM_GetPosition(); int Net_GetLatency(int *ld, int *ad); void PrintPickupMessage(bool localview, const FString &str);