From 74b2c0379381ef63dfc14336062cc1e337b3ec58 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Sat, 27 Nov 2021 17:50:28 +0000 Subject: [PATCH] Link `SDL2::SDLmain` correctly The `SDL_main.h` header defines `main` to be `SDL_main` *when needed by the target platform. This header must be included before defining `main`. The `SDL2::SDLmain` library should be linked only to the executable, not to `libdevilutionx`. --- .github/workflows/Windows_x64.yml | 2 +- .github/workflows/Windows_x86.yml | 2 +- CMakeLists.txt | 2 +- Source/main.cpp | 8 +++----- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/Windows_x64.yml b/.github/workflows/Windows_x64.yml index 61f88c055..8dbd4c0f0 100644 --- a/.github/workflows/Windows_x64.yml +++ b/.github/workflows/Windows_x64.yml @@ -19,7 +19,7 @@ jobs: - name: Create Build Environment run: > sudo apt update && - sudo apt install -y cmake gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 pkg-config-mingw-w64-x86-64 wget git sudo smpq && + sudo apt install -y cmake gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 pkg-config-mingw-w64-x86-64 dpkg-dev wget git sudo smpq && sudo Packaging/windows/mingw-prep64.sh - name: Cache CMake build folder diff --git a/.github/workflows/Windows_x86.yml b/.github/workflows/Windows_x86.yml index 1232cf76d..e33d1f914 100644 --- a/.github/workflows/Windows_x86.yml +++ b/.github/workflows/Windows_x86.yml @@ -19,7 +19,7 @@ jobs: - name: Create Build Environment run: > sudo apt update && - sudo apt install -y cmake gcc-mingw-w64-i686 g++-mingw-w64-i686 pkg-config-mingw-w64-i686 wget git sudo smpq && + sudo apt install -y cmake gcc-mingw-w64-i686 g++-mingw-w64-i686 pkg-config-mingw-w64-i686 dpkg-dev wget git sudo smpq && sudo Packaging/windows/mingw-prep.sh - name: Cache CMake build folder diff --git a/CMakeLists.txt b/CMakeLists.txt index def5337b6..a5f6eba81 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1027,8 +1027,8 @@ if(USE_SDL1) target_compile_definitions(libdevilutionx PUBLIC USE_SDL1) else() target_link_libraries(libdevilutionx PUBLIC - SDL2::SDL2 ${SDL2_MAIN} + SDL2::SDL2 SDL2::SDL2_image) endif() diff --git a/Source/main.cpp b/Source/main.cpp index 4298d4618..9f8d81b95 100644 --- a/Source/main.cpp +++ b/Source/main.cpp @@ -1,4 +1,6 @@ #include +#include + #ifdef __SWITCH__ #include "platform/switch/network.h" #include "platform/switch/random.hpp" @@ -23,11 +25,7 @@ extern "C" const char *__asan_default_options() // NOLINT(bugprone-reserved-iden } #endif -#ifdef __ANDROID__ -int SDL_main(int argc, char **argv) -#else -int main(int argc, char **argv) -#endif +extern "C" int main(int argc, char **argv) { #ifdef __SWITCH__ switch_enable_network();