Skip to content

Commit f69a856

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 5c8a63b commit f69a856

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
@@ -740,7 +740,13 @@ if(WIN32)
740740
endif()
741741

742742
add_executable(headless-git ${CMAKE_SOURCE_DIR}/compat/win32/headless.c)
743-
target_link_options(headless-git PUBLIC /NOLOGO /ENTRY:wWinMainCRTStartup /SUBSYSTEM:WINDOWS)
743+
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
744+
target_link_options(headless-git PUBLIC -municode -Wl,-subsystem,windows)
745+
elseif(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
746+
target_link_options(headless-git PUBLIC /NOLOGO /ENTRY:wWinMainCRTStartup /SUBSYSTEM:WINDOWS)
747+
else()
748+
message(FATAL_ERROR "Unhandled compiler: ${CMAKE_C_COMPILER_ID}")
749+
endif()
744750
elseif(UNIX)
745751
target_link_libraries(common-main pthread rt)
746752
endif()

0 commit comments

Comments
 (0)