Skip to content

Commit ca360a2

Browse files
committed
cmake: Use correct link option for gcc ld in MinGW.
While MSVC needs to specify entry as `wWinMainCRTStartup`, MinGW needs `-municode`. MinGW used to not support `wWinMain`, but recently it finally adds support for that. The support for clang is more complicated. This code was tested on MinGW clang, provided by MSYS2 clang64, and it worked successfully. Further investigation may be needed. Signed-off-by: Yuyi Wang <[email protected]>
1 parent 05d80ad commit ca360a2

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

contrib/buildsystems/CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -726,7 +726,13 @@ if(WIN32)
726726
endif()
727727

728728
add_executable(headless-git ${CMAKE_SOURCE_DIR}/compat/win32/headless.c)
729-
target_link_options(headless-git PUBLIC /NOLOGO /ENTRY:wWinMainCRTStartup /SUBSYSTEM:WINDOWS)
729+
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
730+
target_link_options(headless-git PUBLIC -municode -Wl,-subsystem,windows)
731+
elseif(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
732+
target_link_options(headless-git PUBLIC /NOLOGO /ENTRY:wWinMainCRTStartup /SUBSYSTEM:WINDOWS)
733+
else()
734+
message(FATAL_ERROR "Unhandled compiler: ${CMAKE_C_COMPILER_ID}")
735+
endif()
730736
elseif(UNIX)
731737
target_link_libraries(common-main pthread rt)
732738
endif()

0 commit comments

Comments
 (0)