Skip to content

Commit 00ca883

Browse files
committed
cmake: Set POSITION_INDEPENDENT_CODE property properly
1 parent 5658209 commit 00ca883

File tree

2 files changed

+31
-7
lines changed

2 files changed

+31
-7
lines changed

CMakeLists.txt

+11-1
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,17 @@ message("secp256k1 configure summary")
231231
message("===========================")
232232
message("Build artifacts:")
233233
message(" shared library ...................... ${SECP256K1_BUILD_SHARED}")
234-
message(" static library ...................... ${SECP256K1_BUILD_STATIC}")
234+
if(TARGET secp256k1_static)
235+
get_target_property(use_pic secp256k1_static POSITION_INDEPENDENT_CODE)
236+
if(use_pic)
237+
set(pic_status ", PIC")
238+
else()
239+
set(pic_status ", no PIC")
240+
endif()
241+
else()
242+
set(pic_status "")
243+
endif()
244+
message(" static library ...................... ${SECP256K1_BUILD_STATIC}${pic_status}")
235245
message("Optional modules:")
236246
message(" ECDH ................................ ${SECP256K1_ENABLE_MODULE_ECDH}")
237247
message(" ECDSA pubkey recovery ............... ${SECP256K1_ENABLE_MODULE_RECOVERY}")

src/CMakeLists.txt

+20-6
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,25 @@ else()
1111
set(common_obj "")
1212
endif()
1313

14-
add_library(precomputed OBJECT
15-
precomputed_ecmult.c
16-
precomputed_ecmult_gen.c
17-
)
18-
set(internal_obj "$<TARGET_OBJECTS:precomputed>" "${common_obj}")
14+
if(SECP256K1_BUILD_SHARED)
15+
add_library(precomputed_for_shared OBJECT
16+
precomputed_ecmult.c
17+
precomputed_ecmult_gen.c
18+
)
19+
endif()
20+
21+
if(SECP256K1_BUILD_STATIC)
22+
add_library(precomputed_for_static OBJECT
23+
precomputed_ecmult.c
24+
precomputed_ecmult_gen.c
25+
)
26+
endif()
27+
28+
if(SECP256K1_BUILD_SHARED)
29+
set(internal_obj "$<TARGET_OBJECTS:precomputed_for_shared>" "${common_obj}")
30+
elseif(SECP256K1_BUILD_STATIC)
31+
set(internal_obj "$<TARGET_OBJECTS:precomputed_for_static>" "${common_obj}")
32+
endif()
1933

2034
add_library(secp256k1 SHARED EXCLUDE_FROM_ALL
2135
secp256k1.c
@@ -33,7 +47,7 @@ set_target_properties(secp256k1 PROPERTIES
3347
)
3448
if(SECP256K1_BUILD_SHARED)
3549
get_target_property(use_pic secp256k1 POSITION_INDEPENDENT_CODE)
36-
set_target_properties(precomputed PROPERTIES POSITION_INDEPENDENT_CODE ${use_pic})
50+
set_target_properties(precomputed_for_shared PROPERTIES POSITION_INDEPENDENT_CODE ${use_pic})
3751
set_target_properties(secp256k1 PROPERTIES EXCLUDE_FROM_ALL FALSE)
3852
list(APPEND ${PROJECT_NAME}_installables secp256k1)
3953
endif()

0 commit comments

Comments
 (0)