boost-libs: make this work better on windows

This commit is contained in:
Crypto City 2020-06-02 00:12:53 +00:00
parent 98d41a94d6
commit 8c733fb04d
3 changed files with 58 additions and 46 deletions

View File

@ -48,6 +48,9 @@ message(STATUS "CMake version ${CMAKE_VERSION}")
project(monero)
list(INSERT CMAKE_MODULE_PATH 0
"${CMAKE_SOURCE_DIR}/cmake")
include(FindCcache) # Has to be included after the project() macro, to be able to read the CXX variable.
enable_language(C ASM)
@ -222,9 +225,6 @@ else()
set(Blocks "")
endif()
list(INSERT CMAKE_MODULE_PATH 0
"${CMAKE_SOURCE_DIR}/cmake")
if (NOT DEFINED ENV{DEVELOPER_LOCAL_TOOLS})
message(STATUS "Could not find DEVELOPER_LOCAL_TOOLS in env (not required)")
set(BOOST_IGNORE_SYSTEM_PATHS_DEFAULT OFF)
@ -452,6 +452,47 @@ add_definition_if_function_found(strptime HAVE_STRPTIME)
add_definitions(-DAUTO_INITIALIZE_EASYLOGGINGPP)
# Generate header for embedded translations
# Generate header for embedded translations, use target toolchain if depends, otherwise use the
# lrelease and lupdate binaries from the host
include(ExternalProject)
ExternalProject_Add(generate_translations_header
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/translations"
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/translations"
STAMP_DIR ${LRELEASE_PATH}
CMAKE_ARGS -DLRELEASE_PATH=${LRELEASE_PATH}
INSTALL_COMMAND cmake -E echo "")
include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations")
add_subdirectory(external)
# Final setup for libunbound
include_directories(${UNBOUND_INCLUDE})
link_directories(${UNBOUND_LIBRARY_DIRS})
# Final setup for easylogging++
include_directories(${EASYLOGGING_INCLUDE})
link_directories(${EASYLOGGING_LIBRARY_DIRS})
# Final setup for liblmdb
include_directories(${LMDB_INCLUDE})
# Final setup for libunwind
include_directories(${LIBUNWIND_INCLUDE})
link_directories(${LIBUNWIND_LIBRARY_DIRS})
# Final setup for hid
if (HIDAPI_FOUND)
message(STATUS "Using HIDAPI include dir at ${HIDAPI_INCLUDE_DIR}")
add_definitions(-DHAVE_HIDAPI)
include_directories(${HIDAPI_INCLUDE_DIR})
link_directories(${LIBHIDAPI_LIBRARY_DIRS})
else (HIDAPI_FOUND)
message(STATUS "Could not find HIDAPI")
endif()
# Trezor support check
include(CheckTrezor)
if(MSVC)
add_definitions("/bigobj /MP /W3 /GS- /D_CRT_SECURE_NO_WARNINGS /wd4996 /wd4345 /D_WIN32_WINNT=0x0600 /DWIN32_LEAN_AND_MEAN /DGTEST_HAS_TR1_TUPLE=0 /FIinline_c.h /D__SSE4_1__")
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Dinline=__inline")
@ -846,47 +887,6 @@ endif()
list(APPEND EXTRA_LIBRARIES ${CMAKE_DL_LIBS})
# Generate header for embedded translations
# Generate header for embedded translations, use target toolchain if depends, otherwise use the
# lrelease and lupdate binaries from the host
include(ExternalProject)
ExternalProject_Add(generate_translations_header
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/translations"
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/translations"
STAMP_DIR ${LRELEASE_PATH}
CMAKE_ARGS -DLRELEASE_PATH=${LRELEASE_PATH}
INSTALL_COMMAND cmake -E echo "")
include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations")
add_subdirectory(external)
# Final setup for libunbound
include_directories(${UNBOUND_INCLUDE})
link_directories(${UNBOUND_LIBRARY_DIRS})
# Final setup for easylogging++
include_directories(${EASYLOGGING_INCLUDE})
link_directories(${EASYLOGGING_LIBRARY_DIRS})
# Final setup for liblmdb
include_directories(${LMDB_INCLUDE})
# Final setup for libunwind
include_directories(${LIBUNWIND_INCLUDE})
link_directories(${LIBUNWIND_LIBRARY_DIRS})
# Final setup for hid
if (HIDAPI_FOUND)
message(STATUS "Using HIDAPI include dir at ${HIDAPI_INCLUDE_DIR}")
add_definitions(-DHAVE_HIDAPI)
include_directories(${HIDAPI_INCLUDE_DIR})
link_directories(${LIBHIDAPI_LIBRARY_DIRS})
else (HIDAPI_FOUND)
message(STATUS "Could not find HIDAPI")
endif()
# Trezor support check
include(CheckTrezor)
if (HIDAPI_FOUND OR LibUSB_COMPILE_TEST_PASSED)
if (APPLE)
if(DEPENDS)

View File

@ -104,6 +104,18 @@ set_target_properties(urho3d PROPERTIES
set(URHO3D_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/urho3d/lib/${CMAKE_STATIC_LIBRARY_PREFIX}Urho3D${CMAKE_STATIC_LIBRARY_SUFFIX}")
add_dependencies(urho3d urho3d_ext)
if (WIN32)
set(BOOTSTRAP_EXT "bat")
else()
set(BOOTSTRAP_EXT "sh")
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(TOOLSET clang)
else()
set(TOOLSET gcc)
endif()
ExternalProject_Add(boost_ext
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/boost-libs"
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/boost-libs"
@ -111,7 +123,7 @@ ExternalProject_Add(boost_ext
UPDATE_COMMAND cmake -E echo ""
INSTALL_COMMAND cmake -E echo ""
CONFIGURE_COMMAND cmake -E echo ""
BUILD_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/boost-libs/make_townforge.sh ${CMAKE_CURRENT_SOURCE_DIR}/boost-libs ${CMAKE_CURRENT_BINARY_DIR}/boost-libs "${CXX_SECURITY_FLAGS} -fPIC -DPIC"
BUILD_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/boost-libs/make_townforge.sh ${TOOLSET} ${ARCH_WIDTH} ${CMAKE_CURRENT_SOURCE_DIR}/boost-libs ${CMAKE_CURRENT_BINARY_DIR}/boost-libs ${BOOTSTRAP_EXT} "${CXX_SECURITY_FLAGS} -fPIC -DPIC"
INSTALL_COMMAND cmake -E echo ""
)
add_library(boost UNKNOWN IMPORTED)

2
external/boost-libs vendored

@ -1 +1 @@
Subproject commit 2ad032e272d7b83e558d766b76aa8118689855f2
Subproject commit c9cb938ccecbc6bb6af6f70ada5266a38575fe36