cmake: Avoid contaminating parent project's cache with BUILD_SHARED_LIBS
The CMake cache is global in scope. Therefore, setting the standard cache variable `BUILD_SHARED_LIBS` can inadvertently affect the behavior of a parent project. This change: 1. Sets the `BUILD_SHARED_LIBS` cache variable only when libsecp256k1 is the top-level project. 2. Removes the `SECP256K1_DISABLE_SHARED` cache variable. This enables parent projects that include libsecp256k1 as a subproject to rely solely on standard CMake variables for configuring the library type.
This commit is contained in:
@@ -34,10 +34,8 @@ set(CMAKE_C_EXTENSIONS OFF)
|
|||||||
#=============================
|
#=============================
|
||||||
# Configurable options
|
# Configurable options
|
||||||
#=============================
|
#=============================
|
||||||
option(BUILD_SHARED_LIBS "Build shared libraries." ON)
|
if(libsecp256k1_IS_TOP_LEVEL)
|
||||||
option(SECP256K1_DISABLE_SHARED "Disable shared library. Overrides BUILD_SHARED_LIBS." OFF)
|
option(BUILD_SHARED_LIBS "Build shared libraries." ON)
|
||||||
if(SECP256K1_DISABLE_SHARED)
|
|
||||||
set(BUILD_SHARED_LIBS OFF)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(SECP256K1_INSTALL "Enable installation." ${PROJECT_IS_TOP_LEVEL})
|
option(SECP256K1_INSTALL "Enable installation." ${PROJECT_IS_TOP_LEVEL})
|
||||||
|
|||||||
Reference in New Issue
Block a user