deps: Fix arch resolution on Windows

This commit is contained in:
Vojtech Kral 2018-10-16 11:06:26 +02:00
parent 0263769d8f
commit 97e7b6f18b
2 changed files with 42 additions and 25 deletions

45
deps/CMakeLists.txt vendored
View File

@ -1,3 +1,21 @@
#
# This CMake project downloads, configures and builds Slic3r PE dependencies on Unix and Windows.
#
# When using this script, it's recommended to perform an out-of-source build using CMake.
#
# All the dependencies are installed in a `destdir` directory in the root of the build directory,
# in a traditional Unix-style prefix structure. The destdir can be used directly by CMake
# when building Slic3r - to do this, set the CMAKE_PREFIX_PATH to the destdir's location.
#
# For better clarity of console output, it's recommended to _not_ use a parallelized build
# for the top-level command, ie. use `make -j 1` or `ninja -j 1` to force single-threaded top-level
# build. This doesn't degrade performance as individual dependencies are built in parallel fashion
# as appropriate anyway (cf. the `NPROC` variable).
#
# On Windows, architecture (64 vs 32 bits) is judged based on the compiler variant.
# To build dependencies for either 64 or 32 bit OS, use the respective compiler command line.
#
project(Slic3r-deps)
cmake_minimum_required(VERSION 3.2)
@ -9,28 +27,27 @@ if (NPROC EQUAL 0)
set(NPROC 1)
endif ()
set(DESTDIR "${CMAKE_CURRENT_BINARY_DIR}/destdir")
if (MSVC)
if ("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
message(STATUS "\nDetected 64-bit compiler => building 64-bit deps bundle\n")
set(DEPS_BITS 64)
set(DESTDIR "${CMAKE_CURRENT_BINARY_DIR}/destdir-64")
include("deps-windows.cmake")
add_custom_target(deps_64
DEPENDS dep_boost_64 dep_tbb_64 dep_libcurl_64 dep_wxwidgets_64
)
elseif ("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4")
message(STATUS "\nDetected 32-bit compiler => building 32-bit deps bundle\n")
set(DEPS_BITS 32)
set(DESTDIR "${CMAKE_CURRENT_BINARY_DIR}/destdir-32")
include("deps-windows.cmake")
add_custom_target(deps_32
DEPENDS dep_boost_32 dep_tbb_32 dep_libcurl_32 dep_wxwidgets_32
)
else ()
message(FATAL_ERROR "Unable to detect architecture")
endif ()
else ()
set(DESTDIR "${CMAKE_CURRENT_BINARY_DIR}/destdir")
include("deps-unix-static.cmake")
add_custom_target(deps ALL
DEPENDS dep_boost dep_tbb dep_libcurl dep_wxwidgets
)
endif()
add_custom_target(deps ALL
DEPENDS dep_boost dep_tbb dep_libcurl dep_wxwidgets
)
# Note: I'm not using any of the LOG_xxx options in ExternalProject_Add() commands
# because they seem to generate bogus build files (possibly a bug in ExternalProject).

View File

@ -1,5 +1,5 @@
ExternalProject_Add("dep_boost_${DEPS_BITS}"
ExternalProject_Add(dep_boost
EXCLUDE_FROM_ALL 1
URL "https://dl.bintray.com/boostorg/release/1.63.0/source/boost_1_63_0.tar.gz"
URL_HASH SHA256=fe34a4e119798e10b8cc9e565b3b0284e9fd3977ec8a1b19586ad1dec397088b
@ -25,13 +25,13 @@ ExternalProject_Add("dep_boost_${DEPS_BITS}"
)
if ($DEPS_BITS EQUAL 32)
if (${DEPS_BITS} EQUAL 32)
set(DEP_TBB_GEN "Visual Studio 12")
else ()
set(DEP_TBB_GEN "Visual Studio 12 Win64")
endif ()
ExternalProject_Add("dep_tbb_${DEPS_BITS}"
ExternalProject_Add(dep_tbb
EXCLUDE_FROM_ALL 1
URL "https://github.com/wjakob/tbb/archive/a0dc9bf76d0120f917b641ed095360448cabc85b.tar.gz"
URL_HASH SHA256=0545cb6033bd1873fcae3ea304def720a380a88292726943ae3b9b207f322efe
@ -46,13 +46,13 @@ ExternalProject_Add("dep_tbb_${DEPS_BITS}"
)
if ($DEPS_BITS EQUAL 32)
if (${DEPS_BITS} EQUAL 32)
set(DEP_LIBCURL_TARGET "x86")
else ()
set(DEP_LIBCURL_TARGET "x64")
endif ()
ExternalProject_Add("dep_libcurl_${DEPS_BITS}"
ExternalProject_Add(dep_libcurl
EXCLUDE_FROM_ALL 1
URL "https://curl.haxx.se/download/curl-7.58.0.tar.gz"
URL_HASH SHA256=cc245bf9a1a42a45df491501d97d5593392a03f7b4f07b952793518d97666115
@ -64,7 +64,7 @@ ExternalProject_Add("dep_libcurl_${DEPS_BITS}"
&& "${CMAKE_COMMAND}" -E copy_directory lib "${DESTDIR}\\usr\\local\\lib"
)
if ($DEPS_BITS EQUAL 32)
if (${DEPS_BITS} EQUAL 32)
set(DEP_WXWIDGETS_TARGET "")
set(DEP_WXWIDGETS_LIBDIR "vc_lib")
else ()
@ -72,7 +72,7 @@ else ()
set(DEP_WXWIDGETS_LIBDIR "vc_x64_lib")
endif ()
ExternalProject_Add("dep_wxwidgets_${DEPS_BITS}"
ExternalProject_Add(dep_wxwidgets
EXCLUDE_FROM_ALL 1
URL "https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.1/wxWidgets-3.1.1.tar.bz2"
URL_HASH SHA256=c925dfe17e8f8b09eb7ea9bfdcfcc13696a3e14e92750effd839f5e10726159e