Merge pull request #1094

06bb692 cmake: support BUILD_SHARED_LIBS built-in option (redfish)
e1c7af3 cmake: transitive deps and remove deprecated LINK_* (redfish)
54010b9 crypto: armv7: slow-hash: remove redundant source include (redfish)
This commit is contained in:
Riccardo Spagni 2016-09-18 11:44:08 +02:00
commit 4a03a8a1da
No known key found for this signature in database
GPG Key ID: 55432DF31CCD4FCD
32 changed files with 117 additions and 119 deletions

View File

@ -49,6 +49,7 @@ if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
message(STATUS "Setting default build type: ${CMAKE_BUILD_TYPE}")
endif()
string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWER)
# ARCH defines the target architecture, either by an explicit identifier or
# one of the following two keywords. By default, ARCH a value of 'native':
@ -179,6 +180,17 @@ else()
endif()
option(STATIC "Link libraries statically" ${DEFAULT_STATIC})
# This is a CMake built-in switch that concerns internal libraries
if (NOT DEFINED BUILD_SHARED_LIBS AND NOT STATIC AND CMAKE_BUILD_TYPE_LOWER STREQUAL "debug")
set(BUILD_SHARED_LIBS ON CACHE STRING "Build internal libs as shared")
endif()
if (BUILD_SHARED_LIBS)
message(STATUS "Building internal libraries as shared")
set(PIC_FLAG "-fPIC")
else()
message(STATUS "Building internal libraries as static")
endif()
if(MINGW)
string(REGEX MATCH "^[^/]:/[^/]*" msys2_install_path "${CMAKE_C_COMPILER}")
message(STATUS "MSYS location: ${msys2_install_path}")
@ -365,8 +377,8 @@ else()
set(COVERAGE_FLAGS "-fprofile-arcs -ftest-coverage --coverage")
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_FLAG} ${WARNINGS} ${C_WARNINGS} ${ARCH_FLAG} ${COVERAGE_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE ${MINGW_FLAG} ${WARNINGS} ${CXX_WARNINGS} ${ARCH_FLAG} ${COVERAGE_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_FLAG} ${WARNINGS} ${C_WARNINGS} ${ARCH_FLAG} ${COVERAGE_FLAGS} ${PIC_FLAG}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE ${MINGW_FLAG} ${WARNINGS} ${CXX_WARNINGS} ${ARCH_FLAG} ${COVERAGE_FLAGS} ${PIC_FLAG}")
# With GCC 6.1.1 the compiled binary malfunctions due to aliasing. Until that
# is fixed in the code (Issue #847), force compiler to be conservative.

View File

@ -9,6 +9,6 @@ file(GLOB otshell_utils_sources # All files in directory:
"*.cpp"
)
add_library (otshell_utils STATIC ${otshell_utils_sources})
add_library (otshell_utils ${otshell_utils_sources})
set_target_properties (otshell_utils PROPERTIES OUTPUT_NAME "otshell_utils")
#target_link_libraries (upnpc-static ${LDLIBS}) # to add used libs

View File

@ -39,7 +39,7 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}")
add_library(lmdb
${lmdb_sources})
target_link_libraries(lmdb
LINK_PRIVATE
PRIVATE
${CMAKE_THREAD_LIBS_INIT})
if(WIN32)
target_link_libraries(lmdb

View File

@ -202,13 +202,13 @@ add_library(unbound
${compat_src}
${libunbound_src})
target_link_libraries(unbound
LINK_PRIVATE
PRIVATE
${OPENSSL_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT})
if (WIN32)
target_link_libraries(unbound
LINK_PRIVATE
PRIVATE
iphlpapi
ws2_32)
endif ()

View File

@ -66,7 +66,7 @@ function (bitmonero_add_executable name)
add_executable("${name}"
${ARGN})
target_link_libraries("${name}"
LINK_PRIVATE
PRIVATE
${EXTRA_LIBRARIES})
set_property(TARGET "${name}"
PROPERTY
@ -88,7 +88,7 @@ function (bitmonero_add_library name)
# libwallet, which combines multiple components.
set(objlib obj_${name})
add_library(${objlib} OBJECT ${ARGN})
add_library("${name}" STATIC $<TARGET_OBJECTS:${objlib}>)
add_library("${name}" $<TARGET_OBJECTS:${objlib}>)
set_property(TARGET "${name}"
PROPERTY
FOLDER "libs")

View File

@ -60,18 +60,12 @@ bitmonero_add_library(blockchain_db
${blockchain_db_headers}
${blockchain_db_private_headers})
target_link_libraries(blockchain_db
LINK_PUBLIC
PUBLIC
common
crypto
cryptonote_core
${Boost_DATE_TIME_LIBRARY}
${Boost_CHRONO_LIBRARY}
${Boost_PROGRAM_OPTIONS_LIBRARY}
${Boost_SERIALIZATION_LIBRARY}
${LMDB_LIBRARY}
${BDB_LIBRARY}
LINK_PRIVATE
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
PRIVATE
${EXTRA_LIBRARIES})

View File

@ -63,11 +63,15 @@ bitmonero_add_executable(blockchain_import
${blockchain_import_private_headers})
target_link_libraries(blockchain_import
LINK_PRIVATE
PRIVATE
cryptonote_core
blockchain_db
p2p
${CMAKE_THREAD_LIBS_INIT})
blockchain_db
p2p
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${EXTRA_LIBRARIES})
if(ARCH_WIDTH)
target_compile_definitions(blockchain_import
@ -85,11 +89,15 @@ bitmonero_add_executable(blockchain_export
${blockchain_export_private_headers})
target_link_libraries(blockchain_export
LINK_PRIVATE
PRIVATE
cryptonote_core
p2p
blockchain_db
${CMAKE_THREAD_LIBS_INIT})
blockchain_db
p2p
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${EXTRA_LIBRARIES})
add_dependencies(blockchain_export
version)

View File

@ -62,13 +62,15 @@ bitmonero_add_library(common
${common_headers}
${common_private_headers})
target_link_libraries(common
LINK_PRIVATE
PUBLIC
crypto
${UNBOUND_LIBRARY}
${LIBUNWIND_LIBRARIES}
${Boost_DATE_TIME_LIBRARY}
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
PRIVATE
${EXTRA_LIBRARIES})
#bitmonero_install_headers(common

View File

@ -74,6 +74,11 @@ bitmonero_add_library(crypto
${crypto_sources}
${crypto_headers}
${crypto_private_headers})
target_link_libraries(crypto
PUBLIC
${Boost_SYSTEM_LIBRARY}
PRIVATE
${EXTRA_LIBRARIES})
if (ARM)
option(NO_OPTIMIZED_MULTIPLY_ON_ARM

View File

@ -939,7 +939,6 @@ void cn_slow_hash(const void *data, size_t length, char *hash)
// ND: Some minor optimizations for ARMv7 (raspberrry pi 2), effect seems to be ~40-50% faster.
// Needs more work.
#include "aesb.c"
#ifdef NO_OPTIMIZED_MULTIPLY_ON_ARM
/* The asm corresponds to this C code */

View File

@ -73,7 +73,7 @@ bitmonero_add_library(cryptonote_core
${cryptonote_core_headers}
${cryptonote_core_private_headers})
target_link_libraries(cryptonote_core
LINK_PUBLIC
PUBLIC
common
crypto
otshell_utils
@ -82,9 +82,9 @@ target_link_libraries(cryptonote_core
${Boost_DATE_TIME_LIBRARY}
${Boost_PROGRAM_OPTIONS_LIBRARY}
${Boost_SERIALIZATION_LIBRARY}
LINK_PRIVATE
${Blocks}
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
PRIVATE
${Blocks}
${EXTRA_LIBRARIES})

View File

@ -32,16 +32,10 @@ project (bitmonero CXX)
file(GLOB CRYPTONOTE_PROTOCOL *)
source_group(cryptonote_protocol FILES ${CRYPTONOTE_PROTOCOL})
#add_library(p2p ${P2P})
#bitmonero_private_headers(p2p ${CRYPTONOTE_PROTOCOL})
#bitmonero_private_headers(cryptonote_protocol ${CRYPTONOTE_PROTOCOL})
bitmonero_add_library(cryptonote_protocol ${CRYPTONOTE_PROTOCOL})
#target_link_libraries(p2p)
# LINK_PRIVATE
# ${Boost_CHRONO_LIBRARY}
# ${Boost_REGEX_LIBRARY}
# ${Boost_SYSTEM_LIBRARY}
# ${Boost_THREAD_LIBRARY}
# ${EXTRA_LIBRARIES})
target_link_libraries(cryptonote_protocol
PRIVATE
${EXTRA_LIBRARIES})
add_dependencies(cryptonote_protocol
version)

View File

@ -83,7 +83,7 @@ bitmonero_add_executable(daemon
${blocksdat}
)
target_link_libraries(daemon
LINK_PRIVATE
PRIVATE
rpc
blockchain_db
cryptonote_core
@ -98,9 +98,7 @@ target_link_libraries(daemon
${Boost_PROGRAM_OPTIONS_LIBRARY}
${Boost_REGEX_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${UPNP_LIBRARIES}
${EXTRA_LIBRARIES})
add_dependencies(daemon version)
set_property(TARGET daemon

View File

@ -61,14 +61,10 @@ bitmonero_add_library(daemonizer
${daemonizer_headers}
${daemonizer_private_headers})
target_link_libraries(daemonizer
LINK_PRIVATE
PUBLIC
common
${Boost_CHRONO_LIBRARY}
${Boost_FILESYSTEM_LIBRARY}
${Boost_PROGRAM_OPTIONS_LIBRARY}
${Boost_REGEX_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${UPNP_LIBRARIES}
PRIVATE
${EXTRA_LIBRARIES})

View File

@ -51,5 +51,5 @@ bitmonero_add_library(mnemonics
${mnemonics_headers}
${mnemonics_private_headers})
target_link_libraries(mnemonics
LINK_PRIVATE
${Boost_SYSTEM_LIBRARY})
PRIVATE
${EXTRA_LIBRARIES})

View File

@ -36,12 +36,15 @@ source_group(p2p FILES ${P2P})
#bitmonero_private_headers(p2p ${P2P})
bitmonero_add_library(p2p ${P2P})
#target_link_libraries(p2p)
# LINK_PRIVATE
# ${Boost_CHRONO_LIBRARY}
# ${Boost_REGEX_LIBRARY}
# ${Boost_SYSTEM_LIBRARY}
# ${Boost_THREAD_LIBRARY}
# ${EXTRA_LIBRARIES})
target_link_libraries(p2p
PUBLIC
${UPNP_LIBRARIES}
${Boost_CHRONO_LIBRARY}
${Boost_PROGRAM_OPTIONS_LIBRARY}
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
PRIVATE
${EXTRA_LIBRARIES})
add_dependencies(p2p
version)

View File

@ -46,14 +46,8 @@ bitmonero_add_library(ringct
${ringct_headers}
${ringct_private_headers})
target_link_libraries(ringct
LINK_PUBLIC
PUBLIC
common
crypto
${Boost_DATE_TIME_LIBRARY}
${Boost_PROGRAM_OPTIONS_LIBRARY}
${Boost_SERIALIZATION_LIBRARY}
LINK_PRIVATE
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
PRIVATE
${EXTRA_LIBRARIES})

View File

@ -43,13 +43,11 @@ bitmonero_add_library(rpc
${rpc_headers}
${rpc_private_headers})
target_link_libraries(rpc
LINK_PRIVATE
PUBLIC
cryptonote_core
cryptonote_protocol
${Boost_CHRONO_LIBRARY}
${Boost_REGEX_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
PRIVATE
${EXTRA_LIBRARIES})
add_dependencies(rpc
version)

View File

@ -43,7 +43,7 @@ bitmonero_add_executable(simplewallet
${simplewallet_headers}
${simplewallet_private_headers})
target_link_libraries(simplewallet
LINK_PRIVATE
PRIVATE
wallet
rpc
cryptonote_core
@ -51,8 +51,10 @@ target_link_libraries(simplewallet
common
mnemonics
p2p
${UNBOUND_LIBRARY}
${UPNP_LIBRARIES}
${Boost_CHRONO_LIBRARY}
${Boost_PROGRAM_OPTIONS_LIBRARY}
${Boost_FILESYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${EXTRA_LIBRARIES})
add_dependencies(simplewallet

View File

@ -64,17 +64,19 @@ bitmonero_add_library(wallet
${wallet_api_headers}
${wallet_private_headers})
target_link_libraries(wallet
LINK_PUBLIC
PUBLIC
cryptonote_core
mnemonics
LINK_PRIVATE
p2p
${Boost_CHRONO_LIBRARY}
${Boost_SERIALIZATION_LIBRARY}
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
${Boost_REGEX_LIBRARY}
PRIVATE
${EXTRA_LIBRARIES})
# build and install libwallet_merged only if we building for GUI
if (BUILD_GUI_DEPS)
set(libs_to_merge wallet cryptonote_core mnemonics common crypto ringct)

View File

@ -84,7 +84,7 @@ add_executable(hash-target-tests
${hash_targets_sources}
${hash_targets_headers})
target_link_libraries(hash-target-tests
LINK_PRIVATE
PRIVATE
cryptonote_core)
set_property(TARGET hash-target-tests
PROPERTY

View File

@ -36,17 +36,12 @@ add_executable(core_proxy
${core_proxy_sources}
${core_proxy_headers})
target_link_libraries(core_proxy
LINK_PRIVATE
PRIVATE
cryptonote_core
cryptonote_protocol
p2p
${UPNP_LIBRARIES}
${Boost_CHRONO_LIBRARY}
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${EXPAT_LIBRARIES})
${EXTRA_LIBRARIES})
set_property(TARGET core_proxy
PROPERTY
FOLDER "tests")

View File

@ -62,14 +62,10 @@ add_executable(coretests
${core_tests_sources}
${core_tests_headers})
target_link_libraries(coretests
LINK_PRIVATE
PRIVATE
cryptonote_core
p2p
${Boost_CHRONO_LIBRARY}
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${EXPAT_LIBRARIES}
${EXTRA_LIBRARIES})
set_property(TARGET coretests
PROPERTY

View File

@ -41,7 +41,9 @@ add_executable(crypto-tests
${crypto_sources}
${crypto_headers})
target_link_libraries(crypto-tests
${Boost_SYSTEM_LIBRARY})
PRIVATE
${Boost_SYSTEM_LIBRARY}
${EXTRA_LIBRARIES})
set_property(TARGET crypto-tests
PROPERTY
FOLDER "tests")

View File

@ -35,15 +35,14 @@ add_executable(transfers
${transfers_sources}
${transfers_headers})
target_link_libraries(transfers
LINK_PRIVATE
PRIVATE
useragent
rpc
cryptonote_core
crypto
common
epee
${GTEST_LIBRARIES}
${Boost_LIBRARIES})
${GTEST_LIBRARIES})
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/test_transfers")
add_custom_target(test_transfers

View File

@ -35,8 +35,9 @@ add_executable(difficulty-tests
${difficulty_sources}
${difficulty_headers})
target_link_libraries(difficulty-tests
LINK_PRIVATE
cryptonote_core)
PRIVATE
cryptonote_core
${EXTRA_LIBRARIES})
set_property(TARGET difficulty-tests
PROPERTY
FOLDER "tests")

View File

@ -39,13 +39,13 @@ add_executable(functional_tests
${functional_tests_sources}
${functional_tests_headers})
target_link_libraries(functional_tests
LINK_PRIVATE
PRIVATE
cryptonote_core
wallet
common
crypto
${UNBOUND_LIBRARY}
${Boost_REGEX_LIBRARY}
${Boost_PROGRAM_OPTIONS_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${EXTRA_LIBRARIES})
set_property(TARGET functional_tests

View File

@ -35,8 +35,9 @@ add_executable(hash-tests
${hash_sources}
${hash_headers})
target_link_libraries(hash-tests
LINK_PRIVATE
crypto)
PRIVATE
crypto
${EXTRA_LIBRARIES})
set_property(TARGET hash-tests
PROPERTY
FOLDER "tests")

View File

@ -38,9 +38,13 @@ add_executable(libwallet_api_tests
${libwallet_api_tests_headers})
target_link_libraries(libwallet_api_tests
LINK_PRIVATE
PRIVATE
wallet
${Boost_SERIALIZATION_LIBRARY}
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${GTEST_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
${EXTRA_LIBRARIES})
set_property(TARGET libwallet_api_tests

View File

@ -36,16 +36,15 @@ add_executable(net_load_tests_clt
${clt_sources}
${clt_headers})
target_link_libraries(net_load_tests_clt
LINK_PRIVATE
otshell_utils
p2p
cryptonote_core
PRIVATE
otshell_utils
p2p
cryptonote_core
${GTEST_LIBRARIES}
${Boost_CHRONO_LIBRARY}
${Boost_DATE_TIME_LIBRARY}
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${EXTRA_LIBRARIES})
set(srv_sources
@ -58,16 +57,15 @@ add_executable(net_load_tests_srv
${srv_sources}
${srv_headers})
target_link_libraries(net_load_tests_srv
LINK_PRIVATE
otshell_utils
p2p
cryptonote_core
PRIVATE
otshell_utils
p2p
cryptonote_core
${GTEST_LIBRARIES}
${Boost_CHRONO_LIBRARY}
${Boost_DATE_TIME_LIBRARY}
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${EXTRA_LIBRARIES})
set_property(TARGET net_load_tests_clt net_load_tests_srv

View File

@ -48,11 +48,10 @@ add_executable(performance_tests
${performance_tests_sources}
${performance_tests_headers})
target_link_libraries(performance_tests
LINK_PRIVATE
PRIVATE
cryptonote_core
common
crypto
${UNBOUND_LIBRARY}
${Boost_CHRONO_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${EXTRA_LIBRARIES})

View File

@ -62,7 +62,7 @@ add_executable(unit_tests
${unit_tests_sources}
${unit_tests_headers})
target_link_libraries(unit_tests
LINK_PRIVATE
PRIVATE
ringct
cryptonote_core
blockchain_db
@ -70,11 +70,7 @@ target_link_libraries(unit_tests
wallet
p2p
${GTEST_LIBRARIES}
${Boost_CHRONO_LIBRARY}
${Boost_REGEX_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_THREAD_LIBRARY}
${UNBOUND_LIBRARY}
${CMAKE_THREAD_LIBS_INIT}
${EXTRA_LIBRARIES})
set_property(TARGET unit_tests
PROPERTY