Merge pull request #7416
b4fe7c2
epee linkage dynamic; move monero_add_library to main CMakeLists.txt (mj-xmr)
This commit is contained in:
commit
25bbb26f63
|
@ -540,6 +540,29 @@ macro (monero_enable_coverage)
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
function (monero_add_library name)
|
||||||
|
monero_add_library_with_deps(NAME "${name}" SOURCES ${ARGN})
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
function (monero_add_library_with_deps)
|
||||||
|
cmake_parse_arguments(MONERO_ADD_LIBRARY "" "NAME" "DEPENDS;SOURCES" ${ARGN})
|
||||||
|
source_group("${MONERO_ADD_LIBRARY_NAME}" FILES ${MONERO_ADD_LIBRARY_SOURCES})
|
||||||
|
|
||||||
|
# Define a ("virtual") object library and an actual library that links those
|
||||||
|
# objects together. The virtual libraries can be arbitrarily combined to link
|
||||||
|
# any subset of objects into one library archive. This is used for releasing
|
||||||
|
# libwallet, which combines multiple components.
|
||||||
|
set(objlib obj_${MONERO_ADD_LIBRARY_NAME})
|
||||||
|
add_library(${objlib} OBJECT ${MONERO_ADD_LIBRARY_SOURCES})
|
||||||
|
add_library("${MONERO_ADD_LIBRARY_NAME}" $<TARGET_OBJECTS:${objlib}>)
|
||||||
|
monero_set_target_no_relink("${MONERO_ADD_LIBRARY_NAME}")
|
||||||
|
if (MONERO_ADD_LIBRARY_DEPENDS)
|
||||||
|
add_dependencies(${objlib} ${MONERO_ADD_LIBRARY_DEPENDS})
|
||||||
|
endif()
|
||||||
|
set_property(TARGET "${MONERO_ADD_LIBRARY_NAME}" PROPERTY FOLDER "libs")
|
||||||
|
target_compile_definitions(${objlib}
|
||||||
|
PRIVATE $<TARGET_PROPERTY:${MONERO_ADD_LIBRARY_NAME},INTERFACE_COMPILE_DEFINITIONS>)
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
# Generate header for embedded translations
|
# Generate header for embedded translations
|
||||||
# Generate header for embedded translations, use target toolchain if depends, otherwise use the
|
# Generate header for embedded translations, use target toolchain if depends, otherwise use the
|
||||||
|
|
|
@ -31,7 +31,7 @@ set(EPEE_INCLUDE_DIR_BASE "${CMAKE_CURRENT_SOURCE_DIR}/../include")
|
||||||
# Add headers to the file list, to be able to search for them and autosave in IDEs.
|
# Add headers to the file list, to be able to search for them and autosave in IDEs.
|
||||||
monero_find_all_headers(EPEE_HEADERS_PUBLIC "${EPEE_INCLUDE_DIR_BASE}")
|
monero_find_all_headers(EPEE_HEADERS_PUBLIC "${EPEE_INCLUDE_DIR_BASE}")
|
||||||
|
|
||||||
add_library(epee STATIC byte_slice.cpp byte_stream.cpp hex.cpp abstract_http_client.cpp http_auth.cpp mlog.cpp net_helper.cpp net_utils_base.cpp string_tools.cpp
|
monero_add_library(epee byte_slice.cpp byte_stream.cpp hex.cpp abstract_http_client.cpp http_auth.cpp mlog.cpp net_helper.cpp net_utils_base.cpp string_tools.cpp
|
||||||
wipeable_string.cpp levin_base.cpp memwipe.c connection_basic.cpp network_throttle.cpp network_throttle-detail.cpp mlocker.cpp buffer.cpp net_ssl.cpp
|
wipeable_string.cpp levin_base.cpp memwipe.c connection_basic.cpp network_throttle.cpp network_throttle-detail.cpp mlocker.cpp buffer.cpp net_ssl.cpp
|
||||||
int-util.cpp portable_storage.cpp
|
int-util.cpp portable_storage.cpp
|
||||||
misc_language.cpp
|
misc_language.cpp
|
||||||
|
@ -44,7 +44,7 @@ add_library(epee STATIC byte_slice.cpp byte_stream.cpp hex.cpp abstract_http_cli
|
||||||
)
|
)
|
||||||
|
|
||||||
if (USE_READLINE AND (GNU_READLINE_FOUND OR (DEPENDS AND NOT MINGW)))
|
if (USE_READLINE AND (GNU_READLINE_FOUND OR (DEPENDS AND NOT MINGW)))
|
||||||
add_library(epee_readline STATIC readline_buffer.cpp)
|
monero_add_library(epee_readline readline_buffer.cpp)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(HAVE_C11)
|
if(HAVE_C11)
|
||||||
|
@ -72,8 +72,9 @@ target_link_libraries(epee
|
||||||
${Boost_CHRONO_LIBRARY}
|
${Boost_CHRONO_LIBRARY}
|
||||||
${Boost_FILESYSTEM_LIBRARY}
|
${Boost_FILESYSTEM_LIBRARY}
|
||||||
${Boost_THREAD_LIBRARY}
|
${Boost_THREAD_LIBRARY}
|
||||||
PRIVATE
|
${Boost_REGEX_LIBRARY}
|
||||||
${OPENSSL_LIBRARIES}
|
${OPENSSL_LIBRARIES}
|
||||||
|
PRIVATE
|
||||||
${EXTRA_LIBRARIES})
|
${EXTRA_LIBRARIES})
|
||||||
|
|
||||||
if (USE_READLINE AND (GNU_READLINE_FOUND OR (DEPENDS AND NOT MINGW)))
|
if (USE_READLINE AND (GNU_READLINE_FOUND OR (DEPENDS AND NOT MINGW)))
|
||||||
|
|
|
@ -79,30 +79,6 @@ function (monero_add_executable name)
|
||||||
monero_set_target_no_relink("${name}")
|
monero_set_target_no_relink("${name}")
|
||||||
endfunction ()
|
endfunction ()
|
||||||
|
|
||||||
function (monero_add_library name)
|
|
||||||
monero_add_library_with_deps(NAME "${name}" SOURCES ${ARGN})
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
function (monero_add_library_with_deps)
|
|
||||||
cmake_parse_arguments(MONERO_ADD_LIBRARY "" "NAME" "DEPENDS;SOURCES" ${ARGN})
|
|
||||||
source_group("${MONERO_ADD_LIBRARY_NAME}" FILES ${MONERO_ADD_LIBRARY_SOURCES})
|
|
||||||
|
|
||||||
# Define a ("virtual") object library and an actual library that links those
|
|
||||||
# objects together. The virtual libraries can be arbitrarily combined to link
|
|
||||||
# any subset of objects into one library archive. This is used for releasing
|
|
||||||
# libwallet, which combines multiple components.
|
|
||||||
set(objlib obj_${MONERO_ADD_LIBRARY_NAME})
|
|
||||||
add_library(${objlib} OBJECT ${MONERO_ADD_LIBRARY_SOURCES})
|
|
||||||
add_library("${MONERO_ADD_LIBRARY_NAME}" $<TARGET_OBJECTS:${objlib}>)
|
|
||||||
monero_set_target_no_relink("${MONERO_ADD_LIBRARY_NAME}")
|
|
||||||
if (MONERO_ADD_LIBRARY_DEPENDS)
|
|
||||||
add_dependencies(${objlib} ${MONERO_ADD_LIBRARY_DEPENDS})
|
|
||||||
endif()
|
|
||||||
set_property(TARGET "${MONERO_ADD_LIBRARY_NAME}" PROPERTY FOLDER "libs")
|
|
||||||
target_compile_definitions(${objlib}
|
|
||||||
PRIVATE $<TARGET_PROPERTY:${MONERO_ADD_LIBRARY_NAME},INTERFACE_COMPILE_DEFINITIONS>)
|
|
||||||
endfunction ()
|
|
||||||
|
|
||||||
include(Version)
|
include(Version)
|
||||||
monero_add_library(version SOURCES ${CMAKE_BINARY_DIR}/version.cpp DEPENDS genversion)
|
monero_add_library(version SOURCES ${CMAKE_BINARY_DIR}/version.cpp DEPENDS genversion)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue