From 8db3d5731bc999983ca6c776731a26a4e97d8bc8 Mon Sep 17 00:00:00 2001 From: TheCharlatan Date: Tue, 20 Mar 2018 01:26:35 +0100 Subject: Modify depends for monero's dependencies Add readline, ldns, graphviz, unbound to depends packages Add a cmake toolchain file to depends that is uniquely created for every build and placed in triple/share/toolchain.cmake This file is then passed to cmake with -DCMAKE_TOOLCHAIN_FILE=/path/to/triple/share/toolchain.cmake Add the boost locale package to depends In the depends cmake toolchain file, a DEPENDS flag is added to exclude, or change cmake checks done that are required for depends Link miniupnpc and unwind from depends and not external Add libiconv and icu4c to depends, required for mingw32 builds. Headers (winsock) need to be lower case in order to compile on unix systems. This should not affect building on windows. --- external/CMakeLists.txt | 46 +++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) (limited to 'external') diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 1fc4d64c1..4757b2a3b 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -37,14 +37,18 @@ find_package(Miniupnpc REQUIRED) -message(STATUS "Using in-tree miniupnpc") - -add_subdirectory(miniupnp/miniupnpc) - -set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external") +if(DEPENDS) + message(STATUS "Using static depends miniupnpc found at ${MINIUPNP_LIBRARIES}") + set(UPNP_STATIC true PARENT_SCOPE) + set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE) +else() + message(STATUS "Using in-tree miniupnpc") + add_subdirectory(miniupnp/miniupnpc) + set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external") +endif() if(MSVC) set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267") -elseif(NOT MSVC) +elseif(NOT MSVC AND NOT DEPENDS) set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value") endif() @@ -52,7 +56,7 @@ set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE) find_package(Unbound) -if(NOT UNBOUND_INCLUDE_DIR OR STATIC) +if(NOT UNBOUND_INCLUDE_DIR OR STATIC AND NOT DEPENDS) # NOTE: If STATIC is true, CMAKE_FIND_LIBRARY_SUFFIXES has been reordered. # unbound has config tests which used OpenSSL libraries, so -ldl may need to # be set in this case. @@ -65,15 +69,27 @@ if(NOT UNBOUND_INCLUDE_DIR OR STATIC) set(UNBOUND_LIBRARY "unbound" PARENT_SCOPE) set(UNBOUND_LIBRARY_DIRS "${LIBEVENT2_LIBDIR}" PARENT_SCOPE) else() - message(STATUS "Found libunbound include (unbound.h) in ${UNBOUND_INCLUDE_DIR}") - if(UNBOUND_LIBRARIES) - message(STATUS "Found libunbound shared library") - set(UNBOUND_STATIC false PARENT_SCOPE) - set(UNBOUND_INCLUDE ${UNBOUND_INCLUDE_DIR} PARENT_SCOPE) - set(UNBOUND_LIBRARY ${UNBOUND_LIBRARIES} PARENT_SCOPE) - set(UNBOUND_LIBRARY_DIRS "" PARENT_SCOPE) + if(DEPENDS) + message(STATUS "Found libunbound include (unbound.h) in ${UNBOUND_INCLUDE_DIR}") + if(UNBOUND_LIBRARIES) + message(STATUS "Found libunbound library in ${UNBOUND_LIBRARIES}") + set(UNBOUND_STATIC true PARENT_SCOPE) + set(UNBOUND_LIBRARY ${UNBOUND_LIBRARIES} PARENTSCOPE) + set(UNBOUND_LIBRARY_DIRS "" PARENT_SCOPE) + else() + die("Found libunbound includes, but could not find libunbound library. Please make sure you have installed libunbound or libunbound-dev or the equivalent") + endif() else() - die("Found libunbound includes, but could not find libunbound library. Please make sure you have installed libunbound or libunbound-dev or the equivalent") + message(STATUS "Found libunbound include (unbound.h) in ${UNBOUND_INCLUDE_DIR}") + if(UNBOUND_LIBRARIES) + message(STATUS "Found libunbound shared library") + set(UNBOUND_STATIC false PARENT_SCOPE) + set(UNBOUND_INCLUDE ${UNBOUND_INCLUDE_DIR} PARENT_SCOPE) + set(UNBOUND_LIBRARY ${UNBOUND_LIBRARIES} PARENT_SCOPE) + set(UNBOUND_LIBRARY_DIRS "" PARENT_SCOPE) + else() + die("Found libunbound includes, but could not find libunbound library. Please make sure you have installed libunbound or libunbound-dev or the equivalent") + endif() endif() endif() -- cgit v1.2.3 From cfb3046222ba2bf42732bb9806906a78bc11a49c Mon Sep 17 00:00:00 2001 From: TheCharlatan Date: Wed, 25 Apr 2018 18:19:05 +0200 Subject: Add Miniupnp submodule Drop miniupnp and unbound depends builds. Make sure that build variables are propageted properly to unbound and miniupnp. Rebase to after the v0.12 release --- cmake/FindPCSC.cmake | 3 ++- contrib/depends/packages/cppzmq.mk | 12 ---------- contrib/depends/packages/packages.mk | 8 ++----- contrib/depends/packages/pcsc-lite.mk | 2 +- contrib/depends/toolchain.cmake.in | 7 +++--- external/CMakeLists.txt | 44 +++++++++++------------------------ 6 files changed, 21 insertions(+), 55 deletions(-) (limited to 'external') diff --git a/cmake/FindPCSC.cmake b/cmake/FindPCSC.cmake index b5e8420e6..081919655 100644 --- a/cmake/FindPCSC.cmake +++ b/cmake/FindPCSC.cmake @@ -46,8 +46,9 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCSC DEFAULT_MSG PCSC_LIBRARY PCSC_INCLUDE_DIR IF(PCSC_FOUND) SET( PCSC_LIBRARIES ${PCSC_LIBRARY} ) + SET(PCSC_STATIC_LIBRARIES ${PCSC_STATIC_LIBRARY}) ELSE(PCSC_FOUND) SET( PCSC_LIBRARIES ) ENDIF(PCSC_FOUND) -MARK_AS_ADVANCED( PCSC_LIBRARY PCSC_INCLUDE_DIR ) +MARK_AS_ADVANCED( PCSC_LIBRARY PCSC_INCLUDE_DIR PCSC_STATIC_LIBRARY) diff --git a/contrib/depends/packages/cppzmq.mk b/contrib/depends/packages/cppzmq.mk index 9ff5a5ab0..6c0faf084 100644 --- a/contrib/depends/packages/cppzmq.mk +++ b/contrib/depends/packages/cppzmq.mk @@ -5,19 +5,7 @@ $(package)_file_name=v$($(package)_version).tar.gz $(package)_sha256_hash=3e6b57bf49115f4ae893b1ff7848ead7267013087dc7be1ab27636a97144d373 $(package)_dependencies=zeromq -define $(package)_config_cmds - echo $(build_pefix) &&\ - cmake -DCMAKE_INSTALL_PREFIX=$(build_prefix)/../ -DCMAKE_PREFIX_PATH=$(build_prefix)/../include -DZeroMQ_STATIC_LIBRARY=$(build_prefix)/lib -DPC_LIBZMQ_LIBDIR=$(build_prefix)/lib -DPC_LIBZMQ_LIBRARY_DIRS=$(build_prefix)/lib CMakeLists.txt -endef - -define $(package)_build_cmds - $(MAKE) -endef - define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) &&\ - echo $(host_prefix)/include/ &&\ - echo $($(package)_staging_prefix_dir) &&\ mkdir $($(package)_staging_prefix_dir)/include &&\ cp zmq.hpp $($(package)_staging_prefix_dir)/include endef diff --git a/contrib/depends/packages/packages.mk b/contrib/depends/packages/packages.mk index af92191bb..604b5017f 100644 --- a/contrib/depends/packages/packages.mk +++ b/contrib/depends/packages/packages.mk @@ -1,18 +1,14 @@ -packages:=boost openssl libevent zeromq cppzmq zlib expat ldns unbound cppzmq readline libiconv +packages:=boost openssl libevent zeromq cppzmq zlib expat ldns cppzmq readline libiconv native_packages := native_ccache wallet_packages=bdb -upnp_packages=miniupnpc - darwin_native_packages = native_biplist native_ds_store native_mac_alias ifeq ($(host_os),linux) +packages += pcsc-lite packages += unwind endif -ifeq ($(host_os),darwin11) -package += unwind -endif ifeq ($(host_os),mingw32) packages += icu4c endif diff --git a/contrib/depends/packages/pcsc-lite.mk b/contrib/depends/packages/pcsc-lite.mk index a24442eb9..f568db773 100644 --- a/contrib/depends/packages/pcsc-lite.mk +++ b/contrib/depends/packages/pcsc-lite.mk @@ -8,7 +8,7 @@ define $(package)_set_vars $(package)_build_opts=CC="$($(package)_cc)" $(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" $(package)_config_opts=--prefix=$(host_prefix) - $(package)_config_opts_release=--disable-debug-mode --disable-libsystemd --enable-static + $(package)_config_opts_release=--disable-debug-mode --disable-libsystemd --disable-libudev --enable-static --disable-shared --disable-libusb $(package)_build_opts=CFLAGS="$($(package)_cflags) $($(package)_cppflags) -fPIC" endef diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in index f76d7d1ea..6c708f439 100644 --- a/contrib/depends/toolchain.cmake.in +++ b/contrib/depends/toolchain.cmake.in @@ -17,9 +17,9 @@ SET(LIBUNWIND_INCLUDE_DIR @prefix@/include) SET(LIBUNWIND_LIBRARIES @prefix@/lib/libunwind.a) SET(LIBUNWIND_LIBRARY_DIRS @prefix@/lib) -SET(UNBOUND_INCLUDE_DIR @prefix@/include) -SET(UNBOUND_LIBRARIES @prefix@/lib) -SET(UNBOUND_LIBRARY @prefix@/lib/libunbound.a) +#SET(UNBOUND_INCLUDE_DIR @prefix@/include) +#SET(UNBOUND_LIBRARIES @prefix@/lib) +#SET(UNBOUND_LIBRARY @prefix@/lib/libunbound.a) SET(ZMQ_INCLUDE_PATH @prefix@/include) SET(ZMQ_LIB @prefix@/lib/libzmq.a) @@ -28,7 +28,6 @@ SET(BOOST_IGNORE_SYSTEM_PATHS_DEFAULT ON) SET(BOOST_IGNORE_SYSTEM_PATH ON) SET(BOOST_ROOT @prefix@) SET(BOOST_LIBRARYDIR @prefix@/lib) -SET(Boost_COMPILER "-clang") SET(BOOST_IGNORE_SYSTEM_PATHS_DEFAULT OFF) SET(Boost_NO_SYSTEM_PATHS TRUE) SET(Boost_USE_STATIC_LIBS TRUE) diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 4757b2a3b..25021fe9e 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -37,18 +37,12 @@ find_package(Miniupnpc REQUIRED) -if(DEPENDS) - message(STATUS "Using static depends miniupnpc found at ${MINIUPNP_LIBRARIES}") - set(UPNP_STATIC true PARENT_SCOPE) - set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE) -else() - message(STATUS "Using in-tree miniupnpc") - add_subdirectory(miniupnp/miniupnpc) - set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external") -endif() +message(STATUS "Using in-tree miniupnpc") +add_subdirectory(miniupnp/miniupnpc) +set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external") if(MSVC) set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267") -elseif(NOT MSVC AND NOT DEPENDS) +elseif(NOT MSVC) set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value") endif() @@ -56,7 +50,7 @@ set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE) find_package(Unbound) -if(NOT UNBOUND_INCLUDE_DIR OR STATIC AND NOT DEPENDS) +if(NOT UNBOUND_INCLUDE_DIR OR STATIC) # NOTE: If STATIC is true, CMAKE_FIND_LIBRARY_SUFFIXES has been reordered. # unbound has config tests which used OpenSSL libraries, so -ldl may need to # be set in this case. @@ -69,27 +63,15 @@ if(NOT UNBOUND_INCLUDE_DIR OR STATIC AND NOT DEPENDS) set(UNBOUND_LIBRARY "unbound" PARENT_SCOPE) set(UNBOUND_LIBRARY_DIRS "${LIBEVENT2_LIBDIR}" PARENT_SCOPE) else() - if(DEPENDS) - message(STATUS "Found libunbound include (unbound.h) in ${UNBOUND_INCLUDE_DIR}") - if(UNBOUND_LIBRARIES) - message(STATUS "Found libunbound library in ${UNBOUND_LIBRARIES}") - set(UNBOUND_STATIC true PARENT_SCOPE) - set(UNBOUND_LIBRARY ${UNBOUND_LIBRARIES} PARENTSCOPE) - set(UNBOUND_LIBRARY_DIRS "" PARENT_SCOPE) - else() - die("Found libunbound includes, but could not find libunbound library. Please make sure you have installed libunbound or libunbound-dev or the equivalent") - endif() + message(STATUS "Found libunbound include (unbound.h) in ${UNBOUND_INCLUDE_DIR}") + if(UNBOUND_LIBRARIES) + message(STATUS "Found libunbound shared library") + set(UNBOUND_STATIC false PARENT_SCOPE) + set(UNBOUND_INCLUDE ${UNBOUND_INCLUDE_DIR} PARENT_SCOPE) + set(UNBOUND_LIBRARY ${UNBOUND_LIBRARIES} PARENT_SCOPE) + set(UNBOUND_LIBRARY_DIRS "" PARENT_SCOPE) else() - message(STATUS "Found libunbound include (unbound.h) in ${UNBOUND_INCLUDE_DIR}") - if(UNBOUND_LIBRARIES) - message(STATUS "Found libunbound shared library") - set(UNBOUND_STATIC false PARENT_SCOPE) - set(UNBOUND_INCLUDE ${UNBOUND_INCLUDE_DIR} PARENT_SCOPE) - set(UNBOUND_LIBRARY ${UNBOUND_LIBRARIES} PARENT_SCOPE) - set(UNBOUND_LIBRARY_DIRS "" PARENT_SCOPE) - else() - die("Found libunbound includes, but could not find libunbound library. Please make sure you have installed libunbound or libunbound-dev or the equivalent") - endif() + die("Found libunbound includes, but could not find libunbound library. Please make sure you have installed libunbound or libunbound-dev or the equivalent") endif() endif() -- cgit v1.2.3