Merge topic 'pellesc-default-flags'

12e6c14e69 PellesC: Add default -Ze flag to support compilation against Windows APIs
9db2cf5429 PellesC: Add default compilation and link flags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12000
This commit is contained in:
Brad King
2026-05-05 14:48:06 +00:00
committed by Kitware Robot
4 changed files with 21 additions and 4 deletions

View File

@@ -1,6 +1,2 @@
. .gitlab/ci/ninja-env.ps1
. .gitlab/ci/pellesc-env.ps1
# FIXME(#21536): Avoid requiring the end user to enable
# Pelles C's Microsoft extensions to use Windows APIs.
$env:CFLAGS = "-Ze"

View File

@@ -6,3 +6,8 @@ __windows_compiler_pellesc(ASM_POASM)
set(CMAKE_ASM_POASM_COMPILE_OBJECT
"<CMAKE_ASM_POASM_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -Fo<OBJECT> <SOURCE>")
string(APPEND CMAKE_ASM_POASM_FLAGS_DEBUG_INIT " -Zi")
string(APPEND CMAKE_ASM_POASM_FLAGS_RELEASE_INIT "")
string(APPEND CMAKE_ASM_POASM_FLAGS_RELWITHDEBINFO_INIT " -Zi")
string(APPEND CMAKE_ASM_POASM_FLAGS_MINSIZEREL_INIT "")

View File

@@ -6,3 +6,12 @@ __windows_compiler_pellesc(C)
set(CMAKE_C_COMPILE_OBJECT
"<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -Fo<OBJECT> -c <SOURCE>")
# Enable Pelles C's Microsoft extensions to use Windows APIs.
# The flag also disables standard definitions, so add them.
string(APPEND CMAKE_C_FLAGS_INIT " -Ze -D__STDC__=1 -D__STDC_VERSION__=__POCC_STDC_VERSION__")
string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " -Zi -Ob0")
string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " -Ot -Ob2 -DNDEBUG=1")
string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO_INIT " -Zi -Ot -Ob1 -DNDEBUG=1")
string(APPEND CMAKE_C_FLAGS_MINSIZEREL_INIT " -Os -Ob1 -DNDEBUG=1")

View File

@@ -6,6 +6,8 @@ set(CMAKE_LIBRARY_PATH_FLAG "-libpath:")
set(CMAKE_LINK_DEF_FILE_FLAG "-def:")
set(CMAKE_LINK_LIBRARY_FLAG "")
set(CMAKE_BUILD_TYPE_INIT Debug)
macro(__windows_compiler_pellesc lang)
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_AR> <LINK_FLAGS> -out:<TARGET> <OBJECTS>")
@@ -27,3 +29,8 @@ macro(__windows_compiler_pellesc lang)
endif()
enable_language(RC)
endmacro()
foreach (t IN ITEMS EXE SHARED MODULE)
string(APPEND CMAKE_${t}_LINKER_FLAGS_DEBUG_INIT " -debug -debugtype:both -dbg")
string(APPEND CMAKE_${t}_LINKER_FLAGS_RELWITHDEBINFO_INIT " -debug -debugtype:both -dbg")
endforeach ()