bitcoin-core / secp256k1

Optimized C library for EC operations on curve secp256k1
MIT License
2.02k stars 977 forks source link

cmake: Rework flags summary #1558

Open hebasto opened 1 week ago

hebasto commented 1 week ago

This was requested in https://github.com/hebasto/bitcoin/issues/221. The implementation follows the same approach as in https://github.com/hebasto/bitcoin/pull/93.

Here are a few excerpts from the summaries:

NOTE: The summary above may not exactly match the final applied build flags if any additional CMAKE_* or environment variables have been modified. To see the exact flags applied, build with the --verbose option.


- Windows:

Cross compiling ....................... FALSE Valgrind .............................. OFF Preprocessor defined macros ........... ENABLE_MODULE_ELLSWIFT=1 ENABLE_MODULE_SCHNORRSIG=1 ENABLE_MODULE_EXTRAKEYS=1 ENABLE_MODULE_ECDH=1 ECMULT_WINDOW_SIZE=15 COMB_BLOCKS=11 COMB_TEETH=6 _CRT_SECURE_NO_WARNINGS C compiler ............................ MSVC 19.40.33811.0, C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.40.33807/bin/Hostx64/x64/cl.exe Available build configurations ........ RelWithDebInfo, Release, Debug, MinSizeRel, Coverage Default build configuration ........... Debug

'RelWithDebInfo' build configuration: C compiler flags .................... /DWIN32 /D_WINDOWS /Zi /O2 /Ob1 /W3 /wd4146 /wd4244 /wd4267 Linker flags ........................ /machine:x64 /debug /INCREMENTAL

'Release' build configuration: C compiler flags .................... /DWIN32 /D_WINDOWS /O2 /Ob2 /W3 /wd4146 /wd4244 /wd4267 Linker flags ........................ /machine:x64 /INCREMENTAL:NO

'Debug' build configuration: C compiler flags .................... /DWIN32 /D_WINDOWS /Zi /Ob0 /Od /RTC1 /W3 /wd4146 /wd4244 /wd4267 Linker flags ........................ /machine:x64 /debug /INCREMENTAL

'MinSizeRel' build configuration: C compiler flags .................... /DWIN32 /D_WINDOWS /O1 /Ob1 /W3 /wd4146 /wd4244 /wd4267 Linker flags ........................ /machine:x64 /INCREMENTAL:NO

'Coverage' build configuration: C compiler flags .................... /DWIN32 /D_WINDOWS /Zi /O2 /Ob1 -O0 -DCOVERAGE=1 --coverage /W3 /wd4146 /wd4244 /wd4267 Linker flags ........................ /machine:x64 /debug /INCREMENTAL --coverage

NOTE: The summary above may not exactly match the final applied build flags if any additional CMAKE_* or environment variables have been modified. To see the exact flags applied, build with the --verbose option.

fanquake commented 1 week ago

Looks like this is at least missing link options like -compatibility_version 5.0.0 -current_version 5.1.0.

fanquake commented 1 week ago

Also flags like -fPIC are shown in the C compiler flags, but not shown in the linker flags?

real-or-random commented 1 week ago

Good observations. These should be fixed if the rule is as in this comment:

# Print tools' flags on best-effort. Include the abstracted
# CMake flags that we touch ourselves.
hebasto commented 1 week ago

Both @fanquake's comments have been addressed.

fanquake commented 1 week ago

Looks like this is at least missing link options like -compatibility_version 5.0.0 -current_version 5.1.0.

The same is still missing on Linux?

hebasto commented 1 week ago

All recent @fanquake's comments have been addressed.

hebasto commented 1 week ago

Fixed quoting of (potentially empty) string arguments.