Issues that have been (re)discovered in #1113 but have not been addressed there:
Affecting both build systems:
- Unified docs for configuration autotools/CMake/manual builds (https://github.com/bitcoin-core/secp256k1/pull/1113#issuecomment-1171307979 and #1142); WIP – #1372
- Improve MSVC warning options (https://github.com/bitcoin-core/secp256k1/pull/1113#discussion_r1124276576); solved by #1328
- Consider changing
DLL_EXPORT
TOSECP256k1_DLL_EXPORT
(https://github.com/bitcoin-core/secp256k1/pull/1113#discussion_r1126797102); solved by #1367 - ~Consider setting CMake’s default of /MD for MSVC also in autotools builds. Perhaps make
CMAKE_MSVC_RUNTIME_LIBRARY
a CMake cache variable. (https://github.com/bitcoin-core/secp256k1/pull/1113#issuecomment-1458005771)~ See #1235 (comment) and #1235 (comment) - Print out a warning in the tests if both
VERIFY
andCOVERAGE
are defined. For clarity, this should be done in the C source, not in the build system. (https://github.com/bitcoin-core/secp256k1/pull/1113#discussion_r1127856040); solved by #1333 - Actually check if ARM assembly is supported (https://github.com/bitcoin-core/secp256k1/pull/1113#issuecomment-1460298292 and also tracked in #1034); solved by #1304
- ~Set
-fvisibility-inlines-hidden
? (https://github.com/bitcoin-core/secp256k1/pull/1113#discussion_r1124273356).~ See #1235 (comment). - ~Consider dropping support for Valgrind on MacOS (https://github.com/bitcoin-core/secp256k1/pull/1113#discussion_r1128588031).~ See #1235 (comment).
Affecting only CMake:
- Changelog entry (https://github.com/bitcoin-core/secp256k1/pull/1113#issuecomment-1460298292; solved by #1225)
- Add CMake instructions to release process (solved by #1226)
- Compute string
secp256k1
(e.g., intarget_link_libraries
) as substring ofPROJECT_NAME
. That will help with distinguishing forks. (https://github.com/bitcoin-core/secp256k1/pull/1229#discussion_r1130064718). - Consider recommending CMake-native build commands in the README (https://github.com/bitcoin-core/secp256k1/pull/1113#discussion_r1124301931, solved by #1483)
- Use
GENERATOR_IS_MULTI_CONFIG
in the future, which requires CMake 3.9. (https://github.com/bitcoin-core/secp256k1/pull/1113#discussion_r1124460512; solved by #1239) - See if we can use CMake templates to have something similar to
--enable-dev-mode
. (https://github.com/bitcoin-core/secp256k1/pull/1113#discussion_r912386477; solved by #1234) - Consider dropping support for building static and shared libraries at the same time (https://github.com/bitcoin-core/secp256k1/pull/1113#discussion_r1128702492) or alternatively, enable position-independent code globally (https://github.com/bitcoin-core/secp256k1/pull/1113#discussion_r1124264718; solved by #1230)
-
configure_package_config_file(... COMPATIBILITY
isSameMajorVersion
but should probably beSameMinorVersion
before 1.0.0 according to our SemVer interpretation. But the latter requires CMake 3.11. (https://gnusha.org/secp256k1/2023-03-08.log; solved by #1239) - ~
make check
should run tests in parallel, likectest -j
(https://gnusha.org/secp256k1/2023-03-08.log; WIP in by #1294~ - ~Consider using
COMPILE_FLAGS
orCOMPILE_OPTIONS
to add CFLAGS.COMPILE_OPTIONS
requires CMake 3.11, while we currently target CMake 3.1 (https://github.com/bitcoin-core/secp256k1/pull/1113#discussion_r1125545613)~ See #1235 (comment) - ~Consider CMAKE_COMPILE_WARNING_AS_ERROR for CMake 3.24+ (https://github.com/bitcoin-core/secp256k1/pull/1241#issuecomment-1509008580)~ See #1235 (comment)
- Make
SECP256K1_INSTALL
default toPROJECT_IS_TOP_LEVEL
on CMake 3.21+ (https://github.com/bitcoin-core/secp256k1/pull/1263); solved by #1284