Skip to content

Commit 587d6d4

Browse files
BerrysoftGit for Windows Build Agent
authored and
Git for Windows Build Agent
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 ddc923e commit 587d6d4

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
@@ -734,7 +734,13 @@ if(WIN32)
734734
endif()
735735

736736
add_executable(headless-git ${CMAKE_SOURCE_DIR}/compat/win32/headless.c)
737-
target_link_options(headless-git PUBLIC /NOLOGO /ENTRY:wWinMainCRTStartup /SUBSYSTEM:WINDOWS)
737+
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
738+
target_link_options(headless-git PUBLIC -municode -Wl,-subsystem,windows)
739+
elseif(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
740+
target_link_options(headless-git PUBLIC /NOLOGO /ENTRY:wWinMainCRTStartup /SUBSYSTEM:WINDOWS)
741+
else()
742+
message(FATAL_ERROR "Unhandled compiler: ${CMAKE_C_COMPILER_ID}")
743+
endif()
738744
elseif(UNIX)
739745
target_link_libraries(common-main pthread rt)
740746
endif()

0 commit comments

Comments
 (0)