diff options
author | Masud Rahman <mrahman15@bloomberg.net> | 2017-06-25 18:19:20 -0400 |
---|---|---|
committer | Masud Rahman <mrahman15@bloomberg.net> | 2017-06-25 18:19:20 -0400 |
commit | 73e51e012fbc54a92f8d3ee703e88e02b1a3a430 (patch) | |
tree | 6abde49f90627f8f2d762cecc12c2f9dd11ef8c7 | |
parent | 8b80bcdad82a57d195381a150aa2690f188b127e (diff) | |
download | portable-73e51e012fbc54a92f8d3ee703e88e02b1a3a430.tar.gz portable-73e51e012fbc54a92f8d3ee703e88e02b1a3a430.tar.bz2 portable-73e51e012fbc54a92f8d3ee703e88e02b1a3a430.zip |
cmake_export_symbol: Darwin compatibility
The Darwin platform prefixes all C symbols with an underscore. At
link-time of a shared library, libressl generates a list of symbols to
export, but does not prefix each symbol with an underscore.
This commit addresses that issue.
-rw-r--r-- | cmake_export_symbol.cmake | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/cmake_export_symbol.cmake b/cmake_export_symbol.cmake index 2928c6b..cbc65f2 100644 --- a/cmake_export_symbol.cmake +++ b/cmake_export_symbol.cmake | |||
@@ -10,7 +10,13 @@ macro(export_symbol TARGET FILENAME) | |||
10 | target_sources(${TARGET} PRIVATE ${DEF_FILENAME}) | 10 | target_sources(${TARGET} PRIVATE ${DEF_FILENAME}) |
11 | 11 | ||
12 | elseif(APPLE) | 12 | elseif(APPLE) |
13 | set(FLAG "-exported_symbols_list ${FILENAME}") | 13 | file(READ ${FILENAME} SYMBOLS) |
14 | string(REGEX REPLACE "\n$" "" SYMBOLS ${SYMBOLS}) | ||
15 | string(REPLACE "\n" "\n_" SYMBOLS ${SYMBOLS}) | ||
16 | string(REGEX REPLACE "(.)$" "\\1\\n" SYMBOLS ${SYMBOLS}) | ||
17 | string(REPLACE ".sym" ".exp" EXP_FILENAME ${FILENAME}) | ||
18 | file(WRITE ${EXP_FILENAME} "_${SYMBOLS}") | ||
19 | set(FLAG "-exported_symbols_list ${EXP_FILENAME}") | ||
14 | set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG}) | 20 | set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG}) |
15 | 21 | ||
16 | elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX") | 22 | elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX") |