From 9c37a6cdc8c0ee678368fb998e18984e004606c8 Mon Sep 17 00:00:00 2001 From: Nevyn Bengtsson Date: Mon, 19 Apr 2021 11:58:03 +0200 Subject: [PATCH] don't include main/winmain in dll build otherwise the parent app can't define a main of its own --- CMakeLists.txt | 8 ++++++-- src/core/os_win32.c | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d437060e..5fd9a9d6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -351,7 +351,9 @@ if(LOVR_USE_PICO) endif() if(LOVR_BUILD_SHARED) + list(REMOVE_ITEM LOVR_SRC src/main.c) add_library(lovr SHARED ${LOVR_SRC}) + target_compile_definitions(lovr PRIVATE LOVR_BUILDING_SHARED) elseif(LOVR_BUILD_EXE) add_executable(lovr ${LOVR_SRC}) else() @@ -601,8 +603,10 @@ if(WIN32) target_sources(lovr PRIVATE src/core/os_win32.c) target_sources(lovr PRIVATE src/resources/lovr.rc) set_target_properties(lovr PROPERTIES COMPILE_FLAGS "/wd4244 /MP") - set_target_properties(lovr PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:console /ENTRY:WinMainCRTStartup") - set_target_properties(lovr PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:windows /ENTRY:WinMainCRTStartup") + if(NOT LOVR_BUILD_SHARED) + set_target_properties(lovr PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:console /ENTRY:WinMainCRTStartup") + set_target_properties(lovr PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:windows /ENTRY:WinMainCRTStartup") + endif() target_compile_definitions(lovr PRIVATE _CRT_SECURE_NO_WARNINGS) target_compile_definitions(lovr PRIVATE _CRT_NONSTDC_NO_WARNINGS) diff --git a/src/core/os_win32.c b/src/core/os_win32.c index ee96dfdd..e9cc358d 100644 --- a/src/core/os_win32.c +++ b/src/core/os_win32.c @@ -10,6 +10,8 @@ static uint64_t frequency; +#ifndef LOVR_BUILDING_SHARED + int main(int argc, char** argv); int WINAPI WinMain(HINSTANCE instance, HINSTANCE prev, LPSTR args, int show) { @@ -49,6 +51,8 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE prev, LPSTR args, int show) { return status; } +#endif + bool os_init() { LARGE_INTEGER f; QueryPerformanceFrequency(&f);