Skip to content

Commit

Permalink
fix(libxrpl): change library names in Conan recipe (#4831)
Browse files Browse the repository at this point in the history
Use consistent platform-agnostic library names on all platforms.

Fix an issue that prevents dependents like validator-keys-tool from
linking to libxrpl on Windows.

It is bad practice to change the binary base name depending on the
platform. CMake already manipulates the base name into a final name that
fits the conventions of the platform. Linkers accept base names on the
command line and then look for conventional names on disk.
  • Loading branch information
thejohnfreeman authored Feb 2, 2024
1 parent f9e3658 commit 6f00d32
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
6 changes: 3 additions & 3 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,9 +147,9 @@ def package(self):
def package_info(self):
libxrpl = self.cpp_info.components['libxrpl']
libxrpl.libs = [
'libxrpl_core.a',
'libed25519.a',
'libsecp256k1.a',
'xrpl_core',
'ed25519',
'secp256k1',
]
# TODO: Fix the protobufs to include each other relative to
# `include/`, not `include/ripple/proto/`.
Expand Down
13 changes: 10 additions & 3 deletions src/secp256k1/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,16 @@ elseif(APPLE)
endif()
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(${PROJECT_NAME}_windows "secp256k1")
if(MSVC)
set(${PROJECT_NAME}_windows "${PROJECT_NAME}")
endif()
# This step is commented out from the original. It is bad practice to change
# the binary base name depending on the platform. CMake already manipulates
# the base name into a final name that fits the conventions of the platform.
# Linkers accept base names on the command line and then look for
# conventional names on disk. This way, developers can use base names
# everywhere (in the CMake and Conan they write) and the tools will do the
# right thing.
# if(MSVC)
# set(${PROJECT_NAME}_windows "${PROJECT_NAME}")
# endif()
set_target_properties(secp256k1 PROPERTIES
ARCHIVE_OUTPUT_NAME "${${PROJECT_NAME}_windows}"
RUNTIME_OUTPUT_NAME "${${PROJECT_NAME}_windows}-${${PROJECT_NAME}_soversion}"
Expand Down

0 comments on commit 6f00d32

Please sign in to comment.