PellesC: Add default -Ze flag to support compilation against Windows APIs The Pelles C compiler requires MS extensions to support `__declspec` and other constructs needed to use Windows APIs. Unfortunately the flag also disables standard definitions, so restore them. Issue: #21536 Co-authored-by: Serguei E. Leontiev <leo@sai.msu.ru>
diff --git a/.gitlab/ci/env_windows_pellesc13.01.ps1 b/.gitlab/ci/env_windows_pellesc13.01.ps1 index 4a8b1ca..84a38ac 100644 --- a/.gitlab/ci/env_windows_pellesc13.01.ps1 +++ b/.gitlab/ci/env_windows_pellesc13.01.ps1
@@ -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"
diff --git a/Modules/Platform/Windows-PellesC-C.cmake b/Modules/Platform/Windows-PellesC-C.cmake index a22251c..f5a3dad 100644 --- a/Modules/Platform/Windows-PellesC-C.cmake +++ b/Modules/Platform/Windows-PellesC-C.cmake
@@ -7,6 +7,10 @@ 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")