gcc -dumpspecs | sed -e 's/-lmingwex/-lwindowsapp -lmingwex -lwindowsapp/' -e 's/-lmsvcrt/-lucrtapp/' > "${specs}"
cflags+=" -specs=$(cygpath -w "${specs}")"
fi
- # CMake (as of v3.31.0) gets confused and applies the MSVC rc.exe command-line
- # template to windres. Reset it to the windres template manually:
- rcopts='<CMAKE_RC_COMPILER> -O coff <DEFINES> <INCLUDES> <FLAGS> <SOURCE> <OBJECT>'
- else
- rcopts=''
fi
[ '${{ matrix.type }}' = 'Debug' ] && options+=' -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG='
[ '${{ matrix.type }}' = 'Release' ] && options+=' -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE='
cmake -B bld -G Ninja ${options} \
"-DCMAKE_C_FLAGS=${{ matrix.cflags }} ${cflags}" \
- "-DCMAKE_RC_COMPILE_OBJECT=${rcopts}" \
'-DCMAKE_BUILD_TYPE=${{ matrix.type }}' \
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \
-DCURL_WERROR=ON \
VERSION "${_curl_version_sem}"
LANGUAGES C)
+# CMake does not recognize some targets accurately. Touch up configuration manually as a workaround.
+if(WINDOWS_STORE AND MINGW) # mingw UWP build
+ # CMake (as of v3.31.2) gets confused and applies the MSVC rc.exe command-line
+ # template to windres. Reset it to the windres template via 'Modules/Platform/Windows-windres.cmake':
+ set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff <DEFINES> <INCLUDES> <FLAGS> <SOURCE> <OBJECT>")
+elseif(DOS AND CMAKE_COMPILER_IS_GNUCC) # DJGPP
+ set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
+ set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
+ set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+endif()
+
set(_target_flags "")
if(APPLE)
set(_target_flags "${_target_flags} APPLE")
elseif(DOS OR AMIGA)
set(BUILD_SHARED_LIBS OFF)
set(BUILD_STATIC_LIBS ON)
- if(DOS AND CMAKE_COMPILER_IS_GNUCC)
- set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
- set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
- set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
- endif()
endif()
option(CURL_LTO "Enable compiler Link Time Optimizations" OFF)