A best-practice recommendation for CMake projects - especially those used as libraries - is to prefix option names with the project prefix / name. (Example: https://discourse.cmake.org/t/best-practices-for-option-naming/2039 )
The CMakeLists.txt currently exposes various build options that would benefit from this:
xoption(BUILD_EXAMPLES "Build examples" OFF)
xoption(BUILD_STATIC_QJS_EXE "Build a static qjs executable" OFF)
xoption(BUILD_CLI_WITH_MIMALLOC "Build the qjs executable with mimalloc" OFF)
xoption(BUILD_CLI_WITH_STATIC_MIMALLOC "Build the qjs executable with mimalloc (statically linked)" OFF)
xoption(CONFIG_ASAN "Enable AddressSanitizer (ASan)" OFF)
xoption(CONFIG_MSAN "Enable MemorySanitizer (MSan)" OFF)
xoption(CONFIG_TSAN "Enable ThreadSanitizer (TSan)" OFF)
xoption(CONFIG_UBSAN "Enable UndefinedBehaviorSanitizer (UBSan)" OFF)
Would become:
xoption(QJS_BUILD_EXAMPLES "Build examples" OFF)
xoption(QJS_BUILD_STATIC_EXE "Build a static qjs executable" OFF)
xoption(QJS_BUILD_CLI_WITH_MIMALLOC "Build the qjs executable with mimalloc" OFF)
xoption(QJS_BUILD_CLI_WITH_STATIC_MIMALLOC "Build the qjs executable with mimalloc (statically linked)" OFF)
xoption(QJS_ENABLE_ASAN "Enable AddressSanitizer (ASan)" OFF)
xoption(QJS_ENABLE_MSAN "Enable MemorySanitizer (MSan)" OFF)
xoption(QJS_ENABLE_TSAN "Enable ThreadSanitizer (TSan)" OFF)
xoption(QJS_ENABLE_UBSAN "Enable UndefinedBehaviorSanitizer (UBSan)" OFF)
Additionally, BUILD_QJS_LIBC could be renamed QJS_BUILD_LIBC.
A best-practice recommendation for CMake projects - especially those used as libraries - is to prefix option names with the project prefix / name. (Example: https://discourse.cmake.org/t/best-practices-for-option-naming/2039 )
The CMakeLists.txt currently exposes various build options that would benefit from this:
Would become:
Additionally,
BUILD_QJS_LIBCcould be renamedQJS_BUILD_LIBC.