This commit is contained in:
bubnikv 2019-11-01 19:59:22 +01:00
commit db97610821
21 changed files with 399 additions and 515 deletions

View file

@ -191,6 +191,7 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
add_compile_options(-fsanitize=address -fno-omit-frame-pointer) add_compile_options(-fsanitize=address -fno-omit-frame-pointer)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fsanitize=address")
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")

2
deps/CMakeLists.txt vendored
View file

@ -72,7 +72,7 @@ elseif (APPLE)
message(FATAL_ERROR "Could not determine OS X SDK version. Please use -DCMAKE_OSX_DEPLOYMENT_TARGET=<version>") message(FATAL_ERROR "Could not determine OS X SDK version. Please use -DCMAKE_OSX_DEPLOYMENT_TARGET=<version>")
endif () endif ()
message("OS X Deployment Target (inferred from default): ${DEP_OSX_TARGET}") message("OS X Deployment Target (inferred from SDK): ${DEP_OSX_TARGET}")
endif () endif ()
include("deps-macos.cmake") include("deps-macos.cmake")

135
deps/blosc-mods.patch vendored
View file

@ -1,23 +1,22 @@
From 24640a466b28dfda26069096554676e8c0b6d090 Mon Sep 17 00:00:00 2001 From 5669891dfaaa4c814f3ec667ca6bf4e693aea978 Mon Sep 17 00:00:00 2001
From: tamasmeszaros <meszaros.q@gmail.com> From: tamasmeszaros <meszaros.q@gmail.com>
Date: Tue, 22 Oct 2019 11:29:05 +0200 Date: Wed, 30 Oct 2019 12:54:52 +0100
Subject: [PATCH] Install.dll in prefix/bin and add config export to cmake Subject: [PATCH] Blosc 1.17 fixes and cmake config script
build
--- ---
CMakeLists.txt | 112 ++++++++++++++++++++---------------- CMakeLists.txt | 105 +++++++++++++++++-----------------
blosc/CMakeLists.txt | 121 ++++++++++----------------------------- blosc/CMakeLists.txt | 118 +++++++++------------------------------
cmake/FindLZ4.cmake | 6 +- cmake/FindLZ4.cmake | 6 +-
cmake/FindSnappy.cmake | 8 ++- cmake/FindSnappy.cmake | 8 ++-
cmake/FindZstd.cmake | 8 ++- cmake/FindZstd.cmake | 8 ++-
cmake_config.cmake.in | 33 +++++++++++ cmake_config.cmake.in | 24 ++++++++
internal-complibs/CMakeLists.txt | 30 ++++++++++ internal-complibs/CMakeLists.txt | 35 ++++++++++++
7 files changed, 173 insertions(+), 145 deletions(-) 7 files changed, 157 insertions(+), 147 deletions(-)
create mode 100644 cmake_config.cmake.in create mode 100644 cmake_config.cmake.in
create mode 100644 internal-complibs/CMakeLists.txt create mode 100644 internal-complibs/CMakeLists.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt
index 59d9fab..bdc0dda 100644 index 59d9fab..e9134c2 100644
--- a/CMakeLists.txt --- a/CMakeLists.txt
+++ b/CMakeLists.txt +++ b/CMakeLists.txt
@@ -71,7 +71,7 @@ @@ -71,7 +71,7 @@
@ -29,36 +28,11 @@ index 59d9fab..bdc0dda 100644
if (NOT CMAKE_VERSION VERSION_LESS 3.3) if (NOT CMAKE_VERSION VERSION_LESS 3.3)
cmake_policy(SET CMP0063 NEW) cmake_policy(SET CMP0063 NEW)
endif() endif()
@@ -124,55 +124,37 @@ option(PREFER_EXTERNAL_ZSTD @@ -124,55 +124,30 @@ option(PREFER_EXTERNAL_ZSTD
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
+set(PRIVATE_LIBS "") -
+set(PUBLIC_LIBS "")
+set(PUBLIC_PACKAGES "" CACHE INTERNAL "")
+macro(use_package _pkg _tgt)
+ string(TOUPPER ${_pkg} _PKG)
+ if(NOT DEACTIVATE_${_PKG})
+ if(PREFER_EXTERNAL_${_PKG})
+ find_package(${_pkg})
+ if (NOT ${_pkg}_FOUND )
+ message(STATUS "No ${_pkg} found. Using internal sources.")
+ endif()
+ else()
+ message(STATUS "Using ${_pkg} internal sources.")
+ endif(PREFER_EXTERNAL_${_PKG})
+ # HAVE_${_pkg} will be set to true because even if the library is
+ # not found, we will use the included sources for it
+ set(HAVE_${_PKG} TRUE)
+ if (${_pkg}_FOUND)
+ list(APPEND PUBLIC_LIBS ${_pkg}::${_tgt})
+ set(PUBLIC_PACKAGES "${PUBLIC_PACKAGES};${_pkg}" CACHE INTERNAL "")
+ else()
+ list(APPEND PRIVATE_LIBS ${_pkg}::${_tgt})
+ endif()
+ endif(NOT DEACTIVATE_${_PKG})
+endmacro()
-if(NOT DEACTIVATE_LZ4) -if(NOT DEACTIVATE_LZ4)
- if(PREFER_EXTERNAL_LZ4) - if(PREFER_EXTERNAL_LZ4)
- find_package(LZ4) - find_package(LZ4)
@ -107,6 +81,25 @@ index 59d9fab..bdc0dda 100644
- # not found, we will use the included sources for it - # not found, we will use the included sources for it
- set(HAVE_ZSTD TRUE) - set(HAVE_ZSTD TRUE)
-endif (NOT DEACTIVATE_ZSTD) -endif (NOT DEACTIVATE_ZSTD)
+set(LIBS "")
+macro(use_package _pkg _tgt)
+ string(TOUPPER ${_pkg} _PKG)
+ if(NOT DEACTIVATE_${_PKG})
+ if(PREFER_EXTERNAL_${_PKG})
+ find_package(${_pkg})
+ if (NOT ${_pkg}_FOUND )
+ message(STATUS "No ${_pkg} found. Using internal sources.")
+ endif()
+ else()
+ message(STATUS "Using ${_pkg} internal sources.")
+ endif(PREFER_EXTERNAL_${_PKG})
+ # HAVE_${_pkg} will be set to true because even if the library is
+ # not found, we will use the included sources for it
+ set(HAVE_${_PKG} TRUE)
+ list(APPEND LIBS ${_pkg}::${_tgt})
+ endif(NOT DEACTIVATE_${_PKG})
+endmacro()
+
+set(ZLIB_ROOT $ENV{ZLIB_ROOT}) +set(ZLIB_ROOT $ENV{ZLIB_ROOT})
+use_package(ZLIB ZLIB) +use_package(ZLIB ZLIB)
+use_package(LZ4 LZ4) +use_package(LZ4 LZ4)
@ -115,7 +108,7 @@ index 59d9fab..bdc0dda 100644
# create the config.h file # create the config.h file
configure_file ("blosc/config.h.in" "blosc/config.h" ) configure_file ("blosc/config.h.in" "blosc/config.h" )
@@ -316,6 +298,7 @@ endif() @@ -316,6 +291,7 @@ endif()
# subdirectories # subdirectories
@ -123,7 +116,15 @@ index 59d9fab..bdc0dda 100644
add_subdirectory(blosc) add_subdirectory(blosc)
if(BUILD_TESTS) if(BUILD_TESTS)
@@ -338,10 +321,41 @@ if (BLOSC_INSTALL) @@ -328,7 +304,6 @@ if(BUILD_BENCHMARKS)
add_subdirectory(bench)
endif(BUILD_BENCHMARKS)
-
# uninstall target
if (BLOSC_INSTALL)
configure_file(
@@ -338,10 +313,38 @@ if (BLOSC_INSTALL)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/blosc.pc" install(FILES "${CMAKE_CURRENT_BINARY_DIR}/blosc.pc"
DESTINATION lib/pkgconfig COMPONENT DEV) DESTINATION lib/pkgconfig COMPONENT DEV)
@ -157,16 +158,13 @@ index 59d9fab..bdc0dda 100644
+ install(FILES + install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/cmakeexports/BloscConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/cmakeexports/BloscConfig.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/cmakeexports/BloscConfigVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/cmakeexports/BloscConfigVersion.cmake"
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLZ4.cmake"
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindZstd.cmake"
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindSnappy.cmake"
+ DESTINATION lib/cmake/Blosc COMPONENT DEV) + DESTINATION lib/cmake/Blosc COMPONENT DEV)
+ +
add_custom_target(uninstall add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
endif() endif()
diff --git a/blosc/CMakeLists.txt b/blosc/CMakeLists.txt diff --git a/blosc/CMakeLists.txt b/blosc/CMakeLists.txt
index 1d1bebe..16aff02 100644 index 1d1bebe..f554abe 100644
--- a/blosc/CMakeLists.txt --- a/blosc/CMakeLists.txt
+++ b/blosc/CMakeLists.txt +++ b/blosc/CMakeLists.txt
@@ -1,52 +1,11 @@ @@ -1,52 +1,11 @@
@ -222,19 +220,17 @@ index 1d1bebe..16aff02 100644
# library sources # library sources
set(SOURCES blosc.c blosclz.c fastcopy.c shuffle-generic.c bitshuffle-generic.c set(SOURCES blosc.c blosclz.c fastcopy.c shuffle-generic.c bitshuffle-generic.c
@@ -73,53 +32,15 @@ if(WIN32) @@ -73,53 +32,13 @@ if(WIN32)
message(STATUS "using the internal pthread library for win32 systems.") message(STATUS "using the internal pthread library for win32 systems.")
set(SOURCES ${SOURCES} win32/pthread.c) set(SOURCES ${SOURCES} win32/pthread.c)
else(NOT Threads_FOUND) else(NOT Threads_FOUND)
- set(LIBS ${LIBS} ${CMAKE_THREAD_LIBS_INIT}) - set(LIBS ${LIBS} ${CMAKE_THREAD_LIBS_INIT})
+ list(APPEND PUBLIC_LIBS Threads::Threads) + list(APPEND LIBS Threads::Threads)
+ set(PUBLIC_PACKAGES "${PUBLIC_PACKAGES};Threads" CACHE INTERNAL "")
endif(NOT Threads_FOUND) endif(NOT Threads_FOUND)
else(WIN32) else(WIN32)
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
- set(LIBS ${LIBS} ${CMAKE_THREAD_LIBS_INIT}) - set(LIBS ${LIBS} ${CMAKE_THREAD_LIBS_INIT})
+ list(APPEND PUBLIC_LIBS Threads::Threads) + list(APPEND LIBS Threads::Threads)
+ set(PUBLIC_PACKAGES "${PUBLIC_PACKAGES};Threads" CACHE INTERNAL "")
endif(WIN32) endif(WIN32)
-if(NOT DEACTIVATE_LZ4) -if(NOT DEACTIVATE_LZ4)
@ -280,7 +276,7 @@ index 1d1bebe..16aff02 100644
# targets # targets
if (BUILD_SHARED) if (BUILD_SHARED)
add_library(blosc_shared SHARED ${SOURCES}) add_library(blosc_shared SHARED ${SOURCES})
@@ -191,14 +112,18 @@ if (BUILD_TESTS) @@ -191,14 +110,17 @@ if (BUILD_TESTS)
endif() endif()
endif() endif()
@ -289,8 +285,7 @@ index 1d1bebe..16aff02 100644
if (BUILD_SHARED) if (BUILD_SHARED)
- target_link_libraries(blosc_shared ${LIBS}) - target_link_libraries(blosc_shared ${LIBS})
- target_include_directories(blosc_shared PUBLIC ${BLOSC_INCLUDE_DIRS}) - target_include_directories(blosc_shared PUBLIC ${BLOSC_INCLUDE_DIRS})
+ target_link_libraries(blosc_shared PUBLIC ${PUBLIC_LIBS}) + target_link_libraries(blosc_shared PRIVATE ${LIBS})
+ target_link_libraries(blosc_shared PRIVATE ${PRIVATE_LIBS})
+ target_include_directories(blosc_shared PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>) + target_include_directories(blosc_shared PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
+ target_link_libraries(blosc INTERFACE blosc_shared) + target_link_libraries(blosc INTERFACE blosc_shared)
endif() endif()
@ -298,19 +293,19 @@ index 1d1bebe..16aff02 100644
if (BUILD_TESTS) if (BUILD_TESTS)
- target_link_libraries(blosc_shared_testing ${LIBS}) - target_link_libraries(blosc_shared_testing ${LIBS})
- target_include_directories(blosc_shared_testing PUBLIC ${BLOSC_INCLUDE_DIRS}) - target_include_directories(blosc_shared_testing PUBLIC ${BLOSC_INCLUDE_DIRS})
+ target_link_libraries(blosc_shared_testing ${PUBLIC_LIBS} ${PRIVATE_LIBS}) + target_link_libraries(blosc_shared_testing PRIVATE ${LIBS})
+ target_include_directories(blosc_shared_testing PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) + target_include_directories(blosc_shared_testing PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
endif() endif()
if(BUILD_STATIC) if(BUILD_STATIC)
@@ -207,17 +132,31 @@ if(BUILD_STATIC) @@ -207,17 +129,31 @@ if(BUILD_STATIC)
if (MSVC) if (MSVC)
set_target_properties(blosc_static PROPERTIES PREFIX lib) set_target_properties(blosc_static PROPERTIES PREFIX lib)
endif() endif()
- target_link_libraries(blosc_static ${LIBS}) - target_link_libraries(blosc_static ${LIBS})
- target_include_directories(blosc_static PUBLIC ${BLOSC_INCLUDE_DIRS}) - target_include_directories(blosc_static PUBLIC ${BLOSC_INCLUDE_DIRS})
+ target_link_libraries(blosc_static PUBLIC ${PUBLIC_LIBS}) + # With the static library, cmake has to deal with transitive dependencies
+ target_link_libraries(blosc_static PRIVATE ${PRIVATE_LIBS}) + target_link_libraries(blosc_static PRIVATE ${LIBS})
+ target_include_directories(blosc_static PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>) + target_include_directories(blosc_static PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
+ if (NOT BUILD_SHARED) + if (NOT BUILD_SHARED)
+ target_link_libraries(blosc INTERFACE blosc_static) + target_link_libraries(blosc INTERFACE blosc_static)
@ -398,24 +393,15 @@ index 7db4bb9..cabc2f8 100644
\ No newline at end of file \ No newline at end of file
diff --git a/cmake_config.cmake.in b/cmake_config.cmake.in diff --git a/cmake_config.cmake.in b/cmake_config.cmake.in
new file mode 100644 new file mode 100644
index 0000000..b4ede30 index 0000000..0f6af24
--- /dev/null --- /dev/null
+++ b/cmake_config.cmake.in +++ b/cmake_config.cmake.in
@@ -0,0 +1,33 @@ @@ -0,0 +1,24 @@
+include(CMakeFindDependencyMacro) +include(CMakeFindDependencyMacro)
+ +
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+
+set(_deps "@PUBLIC_PACKAGES@")
+
+foreach(pkg ${_deps})
+ # no minimum versions are required by upstream
+ find_dependency(${pkg})
+endforeach()
+
+include("${CMAKE_CURRENT_LIST_DIR}/BloscTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/BloscTargets.cmake")
+ +
+function(remap_configs from_Cfg to_Cfg) +function(_blosc_remap_configs from_Cfg to_Cfg)
+ string(TOUPPER ${from_Cfg} from_CFG) + string(TOUPPER ${from_Cfg} from_CFG)
+ string(TOLOWER ${from_Cfg} from_cfg) + string(TOLOWER ${from_Cfg} from_cfg)
+ +
@ -432,21 +418,25 @@ index 0000000..b4ede30
+# MSVC will try to link RelWithDebInfo or MinSizeRel target with debug config +# MSVC will try to link RelWithDebInfo or MinSizeRel target with debug config
+# if no matching installation is present which would result in link errors. +# if no matching installation is present which would result in link errors.
+if(MSVC) +if(MSVC)
+ remap_configs(RelWithDebInfo Release) + _blosc_remap_configs(RelWithDebInfo Release)
+ remap_configs(MinSizeRel Release) + _blosc_remap_configs(MinSizeRel Release)
+endif() +endif()
diff --git a/internal-complibs/CMakeLists.txt b/internal-complibs/CMakeLists.txt diff --git a/internal-complibs/CMakeLists.txt b/internal-complibs/CMakeLists.txt
new file mode 100644 new file mode 100644
index 0000000..5b23484 index 0000000..4586efa
--- /dev/null --- /dev/null
+++ b/internal-complibs/CMakeLists.txt +++ b/internal-complibs/CMakeLists.txt
@@ -0,0 +1,30 @@ @@ -0,0 +1,35 @@
+macro(add_lib_target pkg tgt incdir files) +macro(add_lib_target pkg tgt incdir files)
+ string(TOUPPER ${pkg} TGT) + string(TOUPPER ${pkg} TGT)
+ if(NOT DEACTIVATE_${TGT} AND NOT ${pkg}_FOUND) + if(NOT DEACTIVATE_${TGT} AND NOT ${pkg}_FOUND)
+ add_library(${tgt}_objs OBJECT ${files})
+ add_library(${tgt} INTERFACE) + add_library(${tgt} INTERFACE)
+ target_include_directories(${tgt}_objs PRIVATE $<BUILD_INTERFACE:${incdir}>)
+ target_include_directories(${tgt} INTERFACE $<BUILD_INTERFACE:${incdir}>) + target_include_directories(${tgt} INTERFACE $<BUILD_INTERFACE:${incdir}>)
+ target_sources(${tgt} INTERFACE "$<BUILD_INTERFACE:${files}>") + #set_target_properties(${tgt} PROPERTIES INTERFACE_SOURCES "$<TARGET_OBJECTS:${tgt}_objs>")
+ set_target_properties(${tgt}_objs PROPERTIES POSITION_INDEPENDENT_CODE ON)
+ target_sources(${tgt} INTERFACE "$<BUILD_INTERFACE:$<TARGET_OBJECTS:${tgt}_objs>>")
+ add_library(${pkg}::${tgt} ALIAS ${tgt}) + add_library(${pkg}::${tgt} ALIAS ${tgt})
+ +
+ # This creates dummy (empty) interface targets in the exported config. + # This creates dummy (empty) interface targets in the exported config.
@ -471,6 +461,7 @@ index 0000000..5b23484
+file(GLOB ZSTD_FILES ${ZSTD_DIR}/common/*.c ${ZSTD_DIR}/compress/*.c ${ZSTD_DIR}/decompress/*.c) +file(GLOB ZSTD_FILES ${ZSTD_DIR}/common/*.c ${ZSTD_DIR}/compress/*.c ${ZSTD_DIR}/decompress/*.c)
+add_lib_target(Zstd Zstd ${ZSTD_DIR} "${ZSTD_FILES}") +add_lib_target(Zstd Zstd ${ZSTD_DIR} "${ZSTD_FILES}")
+target_include_directories(Zstd INTERFACE $<BUILD_INTERFACE:${ZSTD_DIR}/common>) +target_include_directories(Zstd INTERFACE $<BUILD_INTERFACE:${ZSTD_DIR}/common>)
+target_include_directories(Zstd_objs PRIVATE $<BUILD_INTERFACE:${ZSTD_DIR}/common>)
\ No newline at end of file \ No newline at end of file
-- --
2.16.2.windows.1 2.16.2.windows.1

19
deps/deps-macos.cmake vendored
View file

@ -6,7 +6,7 @@ set(DEP_WERRORS_SDK "-Werror=partial-availability -Werror=unguarded-availability
set(DEP_CMAKE_OPTS set(DEP_CMAKE_OPTS
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON" "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
"-DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}" "-DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}"
"-DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}" "-DCMAKE_OSX_DEPLOYMENT_TARGET=${DEP_OSX_TARGET}"
"-DCMAKE_CXX_FLAGS=${DEP_WERRORS_SDK}" "-DCMAKE_CXX_FLAGS=${DEP_WERRORS_SDK}"
"-DCMAKE_C_FLAGS=${DEP_WERRORS_SDK}" "-DCMAKE_C_FLAGS=${DEP_WERRORS_SDK}"
) )
@ -14,28 +14,27 @@ set(DEP_CMAKE_OPTS
include("deps-unix-common.cmake") include("deps-unix-common.cmake")
set(DEP_BOOST_OSX_TARGET "")
if (CMAKE_OSX_DEPLOYMENT_TARGET)
set(DEP_BOOST_OSX_TARGET "-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
endif ()
ExternalProject_Add(dep_boost ExternalProject_Add(dep_boost
EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_ALL 1
URL "https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.gz" URL "https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.gz"
URL_HASH SHA256=bd0df411efd9a585e5a2212275f8762079fed8842264954675a4fddc46cfcf60 URL_HASH SHA256=96b34f7468f26a141f6020efb813f1a2f3dfb9797ecf76a7d7cbd843cc95f5bd
BUILD_IN_SOURCE 1 BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ./bootstrap.sh CONFIGURE_COMMAND ./bootstrap.sh
--with-toolset=clang
--with-libraries=system,iostreams,filesystem,thread,log,locale,regex --with-libraries=system,iostreams,filesystem,thread,log,locale,regex
"--prefix=${DESTDIR}/usr/local" "--prefix=${DESTDIR}/usr/local"
BUILD_COMMAND ./b2 BUILD_COMMAND ./b2
-j ${NPROC} -j ${NPROC}
--reconfigure --reconfigure
toolset=clang
link=static link=static
variant=release variant=release
threading=multi threading=multi
boost.locale.icu=off boost.locale.icu=off
"cflags=-fPIC ${DEP_BOOST_OSX_TARGET}" "cflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET}"
"cxxflags=-fPIC ${DEP_BOOST_OSX_TARGET}" "cxxflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET}"
"mflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET}"
"mmflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET}"
install install
INSTALL_COMMAND "" # b2 does that already INSTALL_COMMAND "" # b2 does that already
) )

View file

@ -7,6 +7,8 @@ else ()
set(TBB_MINGW_WORKAROUND "") set(TBB_MINGW_WORKAROUND "")
endif () endif ()
find_package(ZLIB REQUIRED)
ExternalProject_Add(dep_tbb ExternalProject_Add(dep_tbb
EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_ALL 1
URL "https://github.com/wjakob/tbb/archive/a0dc9bf76d0120f917b641ed095360448cabc85b.tar.gz" URL "https://github.com/wjakob/tbb/archive/a0dc9bf76d0120f917b641ed095360448cabc85b.tar.gz"
@ -59,42 +61,14 @@ ExternalProject_Add(dep_qhull
-DBUILD_SHARED_LIBS=OFF -DBUILD_SHARED_LIBS=OFF
-DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local
${DEP_CMAKE_OPTS} ${DEP_CMAKE_OPTS}
PATCH_COMMAND ${GIT_EXECUTABLE} apply --ignore-space-change --ignore-whitespace ${CMAKE_CURRENT_SOURCE_DIR}/qhull-mods.patch UPDATE_COMMAND ""
PATCH_COMMAND ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_SOURCE_DIR}/qhull-mods.patch
) )
ExternalProject_Add(dep_libigl
EXCLUDE_FROM_ALL 1
URL "https://github.com/libigl/libigl/archive/v2.0.0.tar.gz"
URL_HASH SHA256=42518e6b106c7209c73435fd260ed5d34edeb254852495b4c95dce2d95401328
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local
-DLIBIGL_BUILD_PYTHON=OFF
-DLIBIGL_BUILD_TESTS=OFF
-DLIBIGL_BUILD_TUTORIALS=OFF
-DLIBIGL_USE_STATIC_LIBRARY=OFF #${DEP_BUILD_IGL_STATIC}
-DLIBIGL_WITHOUT_COPYLEFT=OFF
-DLIBIGL_WITH_CGAL=OFF
-DLIBIGL_WITH_COMISO=OFF
-DLIBIGL_WITH_CORK=OFF
-DLIBIGL_WITH_EMBREE=OFF
-DLIBIGL_WITH_MATLAB=OFF
-DLIBIGL_WITH_MOSEK=OFF
-DLIBIGL_WITH_OPENGL=OFF
-DLIBIGL_WITH_OPENGL_GLFW=OFF
-DLIBIGL_WITH_OPENGL_GLFW_IMGUI=OFF
-DLIBIGL_WITH_PNG=OFF
-DLIBIGL_WITH_PYTHON=OFF
-DLIBIGL_WITH_TETGEN=OFF
-DLIBIGL_WITH_TRIANGLE=OFF
-DLIBIGL_WITH_XML=OFF
PATCH_COMMAND ${GIT_EXECUTABLE} apply --ignore-space-change --ignore-whitespace ${CMAKE_CURRENT_SOURCE_DIR}/igl-mods.patch
)
ExternalProject_Add(dep_blosc ExternalProject_Add(dep_blosc
EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_ALL 1
GIT_REPOSITORY https://github.com/Blosc/c-blosc.git GIT_REPOSITORY https://github.com/Blosc/c-blosc.git
GIT_TAG v1.17.0 GIT_TAG e63775855294b50820ef44d1b157f4de1cc38d3e #v1.17.0
DEPENDS DEPENDS
CMAKE_ARGS CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local
@ -105,14 +79,15 @@ ExternalProject_Add(dep_blosc
-DBUILD_STATIC=ON -DBUILD_STATIC=ON
-DBUILD_TESTS=OFF -DBUILD_TESTS=OFF
-DBUILD_BENCHMARKS=OFF -DBUILD_BENCHMARKS=OFF
-DPREFER_EXTERNAL_ZLIB=OFF -DPREFER_EXTERNAL_ZLIB=ON
PATCH_COMMAND ${GIT_EXECUTABLE} apply --ignore-space-change --ignore-whitespace ${CMAKE_CURRENT_SOURCE_DIR}/blosc-mods.patch UPDATE_COMMAND ""
PATCH_COMMAND ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_SOURCE_DIR}/blosc-mods.patch
) )
ExternalProject_Add(dep_openexr ExternalProject_Add(dep_openexr
EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_ALL 1
GIT_REPOSITORY https://github.com/openexr/openexr.git GIT_REPOSITORY https://github.com/openexr/openexr.git
GIT_TAG v2.4.0 GIT_TAG eae0e337c9f5117e78114fd05f7a415819df413a #v2.4.0
CMAKE_ARGS CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local
-DBUILD_SHARED_LIBS=OFF -DBUILD_SHARED_LIBS=OFF
@ -121,12 +96,13 @@ ExternalProject_Add(dep_openexr
-DPYILMBASE_ENABLE:BOOL=OFF -DPYILMBASE_ENABLE:BOOL=OFF
-DOPENEXR_VIEWERS_ENABLE:BOOL=OFF -DOPENEXR_VIEWERS_ENABLE:BOOL=OFF
-DOPENEXR_BUILD_UTILS:BOOL=OFF -DOPENEXR_BUILD_UTILS:BOOL=OFF
UPDATE_COMMAND ""
) )
ExternalProject_Add(dep_openvdb ExternalProject_Add(dep_openvdb
EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_ALL 1
GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openvdb.git GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openvdb.git
GIT_TAG v6.2.1 GIT_TAG aebaf8d95be5e57fd33949281ec357db4a576c2e #v6.2.1
DEPENDS dep_blosc dep_openexr dep_tbb DEPENDS dep_blosc dep_openexr dep_tbb
CMAKE_ARGS CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local
@ -140,5 +116,6 @@ ExternalProject_Add(dep_openvdb
-DOPENVDB_CORE_STATIC=ON -DOPENVDB_CORE_STATIC=ON
-DTBB_STATIC=ON -DTBB_STATIC=ON
-DOPENVDB_BUILD_VDB_PRINT=ON -DOPENVDB_BUILD_VDB_PRINT=ON
PATCH_COMMAND ${GIT_EXECUTABLE} apply ${CMAKE_CURRENT_SOURCE_DIR}/openvdb-mods.patch UPDATE_COMMAND ""
PATCH_COMMAND ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_SOURCE_DIR}/openvdb-mods.patch
) )

View file

@ -81,7 +81,6 @@ ExternalProject_Add(dep_boost
INSTALL_COMMAND "" # b2 does that already INSTALL_COMMAND "" # b2 does that already
) )
ExternalProject_Add(dep_tbb ExternalProject_Add(dep_tbb
EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_ALL 1
URL "https://github.com/wjakob/tbb/archive/a0dc9bf76d0120f917b641ed095360448cabc85b.tar.gz" URL "https://github.com/wjakob/tbb/archive/a0dc9bf76d0120f917b641ed095360448cabc85b.tar.gz"
@ -99,22 +98,22 @@ ExternalProject_Add(dep_tbb
add_debug_dep(dep_tbb) add_debug_dep(dep_tbb)
ExternalProject_Add(dep_gtest # ExternalProject_Add(dep_gtest
EXCLUDE_FROM_ALL 1 # EXCLUDE_FROM_ALL 1
URL "https://github.com/google/googletest/archive/release-1.8.1.tar.gz" # URL "https://github.com/google/googletest/archive/release-1.8.1.tar.gz"
URL_HASH SHA256=9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c # URL_HASH SHA256=9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c
CMAKE_GENERATOR "${DEP_MSVC_GEN}" # CMAKE_GENERATOR "${DEP_MSVC_GEN}"
CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}" # CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}"
CMAKE_ARGS # CMAKE_ARGS
-DBUILD_GMOCK=OFF # -DBUILD_GMOCK=OFF
-Dgtest_force_shared_crt=ON # -Dgtest_force_shared_crt=ON
-DCMAKE_POSITION_INDEPENDENT_CODE=ON # -DCMAKE_POSITION_INDEPENDENT_CODE=ON
"-DCMAKE_INSTALL_PREFIX:PATH=${DESTDIR}\\usr\\local" # "-DCMAKE_INSTALL_PREFIX:PATH=${DESTDIR}\\usr\\local"
BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj # BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj
INSTALL_COMMAND "" # INSTALL_COMMAND ""
) # )
add_debug_dep(dep_gtest) # add_debug_dep(dep_gtest)
ExternalProject_Add(dep_cereal ExternalProject_Add(dep_cereal
EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_ALL 1
@ -181,7 +180,6 @@ if (${DEP_DEBUG})
) )
endif () endif ()
if (${DEPS_BITS} EQUAL 32) if (${DEPS_BITS} EQUAL 32)
set(DEP_LIBCURL_TARGET "x86") set(DEP_LIBCURL_TARGET "x86")
else () else ()
@ -228,7 +226,8 @@ ExternalProject_Add(dep_qhull
-DBUILD_SHARED_LIBS=OFF -DBUILD_SHARED_LIBS=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_DEBUG_POSTFIX=d -DCMAKE_DEBUG_POSTFIX=d
PATCH_COMMAND ${GIT_EXECUTABLE} apply --ignore-space-change --ignore-whitespace ${CMAKE_CURRENT_SOURCE_DIR}/qhull-mods.patch UPDATE_COMMAND ""
PATCH_COMMAND ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_SOURCE_DIR}/qhull-mods.patch
BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj
INSTALL_COMMAND "" INSTALL_COMMAND ""
) )
@ -245,41 +244,6 @@ endif ()
find_package(Git REQUIRED) find_package(Git REQUIRED)
ExternalProject_Add(dep_libigl
EXCLUDE_FROM_ALL 1
URL "https://github.com/libigl/libigl/archive/v2.0.0.tar.gz"
URL_HASH SHA256=42518e6b106c7209c73435fd260ed5d34edeb254852495b4c95dce2d95401328
CMAKE_GENERATOR "${DEP_MSVC_GEN}"
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local
-DLIBIGL_BUILD_PYTHON=OFF
-DLIBIGL_BUILD_TESTS=OFF
-DLIBIGL_BUILD_TUTORIALS=OFF
-DLIBIGL_USE_STATIC_LIBRARY=OFF #${DEP_BUILD_IGL_STATIC}
-DLIBIGL_WITHOUT_COPYLEFT=OFF
-DLIBIGL_WITH_CGAL=OFF
-DLIBIGL_WITH_COMISO=OFF
-DLIBIGL_WITH_CORK=OFF
-DLIBIGL_WITH_EMBREE=OFF
-DLIBIGL_WITH_MATLAB=OFF
-DLIBIGL_WITH_MOSEK=OFF
-DLIBIGL_WITH_OPENGL=OFF
-DLIBIGL_WITH_OPENGL_GLFW=OFF
-DLIBIGL_WITH_OPENGL_GLFW_IMGUI=OFF
-DLIBIGL_WITH_PNG=OFF
-DLIBIGL_WITH_PYTHON=OFF
-DLIBIGL_WITH_TETGEN=OFF
-DLIBIGL_WITH_TRIANGLE=OFF
-DLIBIGL_WITH_XML=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DCMAKE_DEBUG_POSTFIX=d
PATCH_COMMAND ${GIT_EXECUTABLE} apply --ignore-space-change --ignore-whitespace ${CMAKE_CURRENT_SOURCE_DIR}/igl-mods.patch
BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj
INSTALL_COMMAND ""
)
add_debug_dep(dep_libigl)
ExternalProject_Add(dep_wxwidgets ExternalProject_Add(dep_wxwidgets
EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_ALL 1
GIT_REPOSITORY "https://github.com/prusa3d/wxWidgets" GIT_REPOSITORY "https://github.com/prusa3d/wxWidgets"
@ -305,10 +269,13 @@ endif ()
ExternalProject_Add(dep_blosc ExternalProject_Add(dep_blosc
EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_ALL 1
#URL https://github.com/Blosc/c-blosc/archive/v1.17.0.zip
#URL_HASH SHA256=7463a1df566704f212263312717ab2c36b45d45cba6cd0dccebf91b2cc4b4da9
GIT_REPOSITORY https://github.com/Blosc/c-blosc.git GIT_REPOSITORY https://github.com/Blosc/c-blosc.git
GIT_TAG v1.17.0 GIT_TAG e63775855294b50820ef44d1b157f4de1cc38d3e #v1.17.0
DEPENDS dep_zlib DEPENDS dep_zlib
CMAKE_GENERATOR "${DEP_MSVC_GEN}" CMAKE_GENERATOR "${DEP_MSVC_GEN}"
CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}"
CMAKE_ARGS CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local
-DBUILD_SHARED_LIBS=OFF -DBUILD_SHARED_LIBS=OFF
@ -319,6 +286,9 @@ ExternalProject_Add(dep_blosc
-DBUILD_TESTS=OFF -DBUILD_TESTS=OFF
-DBUILD_BENCHMARKS=OFF -DBUILD_BENCHMARKS=OFF
-DPREFER_EXTERNAL_ZLIB=ON -DPREFER_EXTERNAL_ZLIB=ON
-DBLOSC_IS_SUBPROJECT:BOOL=ON
-DBLOSC_INSTALL:BOOL=ON
UPDATE_COMMAND ""
PATCH_COMMAND ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_SOURCE_DIR}/blosc-mods.patch PATCH_COMMAND ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_SOURCE_DIR}/blosc-mods.patch
BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj
INSTALL_COMMAND "" INSTALL_COMMAND ""
@ -329,9 +299,10 @@ add_debug_dep(dep_blosc)
ExternalProject_Add(dep_openexr ExternalProject_Add(dep_openexr
EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_ALL 1
GIT_REPOSITORY https://github.com/openexr/openexr.git GIT_REPOSITORY https://github.com/openexr/openexr.git
GIT_TAG v2.4.0 GIT_TAG eae0e337c9f5117e78114fd05f7a415819df413a #v2.4.0
DEPENDS dep_zlib DEPENDS dep_zlib
CMAKE_GENERATOR "${DEP_MSVC_GEN}" CMAKE_GENERATOR "${DEP_MSVC_GEN}"
CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}"
CMAKE_ARGS CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local
-DBUILD_SHARED_LIBS=OFF -DBUILD_SHARED_LIBS=OFF
@ -340,6 +311,7 @@ ExternalProject_Add(dep_openexr
-DPYILMBASE_ENABLE:BOOL=OFF -DPYILMBASE_ENABLE:BOOL=OFF
-DOPENEXR_VIEWERS_ENABLE:BOOL=OFF -DOPENEXR_VIEWERS_ENABLE:BOOL=OFF
-DOPENEXR_BUILD_UTILS:BOOL=OFF -DOPENEXR_BUILD_UTILS:BOOL=OFF
UPDATE_COMMAND ""
BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj
INSTALL_COMMAND "" INSTALL_COMMAND ""
) )
@ -348,10 +320,13 @@ add_debug_dep(dep_openexr)
ExternalProject_Add(dep_openvdb ExternalProject_Add(dep_openvdb
EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_ALL 1
#URL https://github.com/AcademySoftwareFoundation/openvdb/archive/v6.2.1.zip
#URL_HASH SHA256=dc337399dce8e1c9f21f20e97b1ce7e4933cb0a63bb3b8b734d8fcc464aa0c48
GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openvdb.git GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openvdb.git
GIT_TAG v6.2.1 GIT_TAG aebaf8d95be5e57fd33949281ec357db4a576c2e #v6.2.1
DEPENDS dep_blosc dep_openexr dep_tbb DEPENDS dep_blosc dep_openexr #dep_tbb dep_boost
CMAKE_GENERATOR "${DEP_MSVC_GEN}" CMAKE_GENERATOR "${DEP_MSVC_GEN}"
CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}"
CMAKE_ARGS CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr/local
-DCMAKE_DEBUG_POSTFIX=d -DCMAKE_DEBUG_POSTFIX=d
@ -365,6 +340,7 @@ ExternalProject_Add(dep_openvdb
-DTBB_STATIC=ON -DTBB_STATIC=ON
-DOPENVDB_BUILD_VDB_PRINT=ON -DOPENVDB_BUILD_VDB_PRINT=ON
BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj BUILD_COMMAND msbuild /m /P:Configuration=Release INSTALL.vcxproj
UPDATE_COMMAND ""
PATCH_COMMAND ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_SOURCE_DIR}/openvdb-mods.patch PATCH_COMMAND ${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_SOURCE_DIR}/openvdb-mods.patch
INSTALL_COMMAND "" INSTALL_COMMAND ""
) )

128
deps/igl-mods.patch vendored
View file

@ -1,128 +0,0 @@
diff --git a/cmake/libigl-config.cmake.in b/cmake/libigl-config.cmake.in
index 317c745c..f9808e1e 100644
--- a/cmake/libigl-config.cmake.in
+++ b/cmake/libigl-config.cmake.in
@@ -2,28 +2,28 @@
include(${CMAKE_CURRENT_LIST_DIR}/libigl-export.cmake)
-if (TARGET igl::core)
- if (NOT TARGET Eigen3::Eigen)
- find_package(Eigen3 QUIET)
- if (NOT Eigen3_FOUND)
- # try with PkgCOnfig
- find_package(PkgConfig REQUIRED)
- pkg_check_modules(Eigen3 QUIET IMPORTED_TARGET eigen3)
- endif()
-
- if (NOT Eigen3_FOUND)
- message(FATAL_ERROR "Could not find required dependency Eigen3")
- set(libigl_core_FOUND FALSE)
- else()
- target_link_libraries(igl::core INTERFACE PkgConfig::Eigen3)
- set(libigl_core_FOUND TRUE)
- endif()
- else()
- target_link_libraries(igl::core INTERFACE Eigen3::Eigen)
- set(libigl_core_FOUND TRUE)
- endif()
-
-endif()
+# if (TARGET igl::core)
+# if (NOT TARGET Eigen3::Eigen)
+# find_package(Eigen3 QUIET)
+# if (NOT Eigen3_FOUND)
+# # try with PkgCOnfig
+# find_package(PkgConfig REQUIRED)
+# pkg_check_modules(Eigen3 QUIET IMPORTED_TARGET eigen3)
+# endif()
+#
+# if (NOT Eigen3_FOUND)
+# message(FATAL_ERROR "Could not find required dependency Eigen3")
+# set(libigl_core_FOUND FALSE)
+# else()
+# target_link_libraries(igl::core INTERFACE PkgConfig::Eigen3)
+# set(libigl_core_FOUND TRUE)
+# endif()
+# else()
+# target_link_libraries(igl::core INTERFACE Eigen3::Eigen)
+# set(libigl_core_FOUND TRUE)
+# endif()
+#
+# endif()
check_required_components(libigl)
diff --git a/cmake/libigl.cmake b/cmake/libigl.cmake
index 4b11007a..47e6c395 100644
--- a/cmake/libigl.cmake
+++ b/cmake/libigl.cmake
@@ -445,6 +445,7 @@ function(install_dir_files dir_name)
if(NOT LIBIGL_USE_STATIC_LIBRARY)
file(GLOB public_sources
${CMAKE_CURRENT_SOURCE_DIR}/include/igl${subpath}/*.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/igl${subpath}/*.c
)
endif()
list(APPEND files_to_install ${public_sources})
diff --git a/include/igl/AABB.cpp b/include/igl/AABB.cpp
index 09537335..92e90cb7 100644
--- a/include/igl/AABB.cpp
+++ b/include/igl/AABB.cpp
@@ -1071,5 +1071,11 @@ template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::init<Eigen
// generated by autoexplicit.sh
template void igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 2>::init<Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&);
template double igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::squared_distance<Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<double, 1, 3, 1, 1, 3> const&, double, int&, Eigen::PlainObjectBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> >&) const;
+template float igl::AABB<Eigen::Map<Eigen::Matrix<float, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> >, 3>::squared_distance<Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > >(Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<float, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > > const&, Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > > const&, Eigen::Matrix<float, 1, 3, 1, 1, 3> const&, int&, Eigen::PlainObjectBase<Eigen::Matrix<float, 1, 3, 1, 1, 3> >&) const;
template bool igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::intersect_ray<Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<double, 1, 3, 1, 1, 3> const&, Eigen::Matrix<double, 1, 3, 1, 1, 3> const&, igl::Hit&) const;
+template bool igl::AABB<Eigen::Matrix<double, -1, -1, 0, -1, -1>, 3>::intersect_ray<Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<double, 1, 3, 1, 1, 3> const&, Eigen::Matrix<double, 1, 3, 1, 1, 3> const&, std::vector<igl::Hit>&) const;
+
+template void igl::AABB<Eigen::Map<Eigen::Matrix<float, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> >, 3>::init<Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > >(Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<float, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > > const&, Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > > const&);
+
+template bool igl::AABB<Eigen::Map<Eigen::Matrix<float, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> >, 3>::intersect_ray<Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > >(Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<float, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > > const&, Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > > const&, Eigen::Matrix<float, 1, 3, 1, 1, 3> const&, Eigen::Matrix<float, 1, 3, 1, 1, 3> const&, std::vector<igl::Hit, std::allocator<igl::Hit> >&) const;
#endif
diff --git a/include/igl/barycenter.cpp b/include/igl/barycenter.cpp
index 065f82aa..ec2d96cd 100644
--- a/include/igl/barycenter.cpp
+++ b/include/igl/barycenter.cpp
@@ -54,4 +54,6 @@ template void igl::barycenter<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::M
template void igl::barycenter<Eigen::Matrix<double, -1, 3, 0, -1, 3>, Eigen::Matrix<int, -1, 3, 0, -1, 3>, Eigen::Matrix<double, -1, 3, 0, -1, 3> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, 3, 0, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 0, -1, 3> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 3, 0, -1, 3> >&);
template void igl::barycenter<Eigen::Matrix<double, -1, 3, 0, -1, 3>, Eigen::Matrix<int, -1, 3, 0, -1, 3>, Eigen::Matrix<double, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, 3, 0, -1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, 3, 0, -1, 3> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&);
template void igl::barycenter<Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, Eigen::Matrix<double, -1, 2, 0, -1, 2> >(Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 2, 0, -1, 2> >&);
+
+template void igl::barycenter<Eigen::Map<Eigen::Matrix<float, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> >, Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> >, Eigen::Matrix<float, -1, 3, 0, -1, 3> >(Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<float, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > > const&, Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > > const&, Eigen::PlainObjectBase<Eigen::Matrix<float, -1, 3, 0, -1, 3> >&);
#endif
diff --git a/include/igl/point_simplex_squared_distance.cpp b/include/igl/point_simplex_squared_distance.cpp
index 2b98bd28..c66d9ae1 100644
--- a/include/igl/point_simplex_squared_distance.cpp
+++ b/include/igl/point_simplex_squared_distance.cpp
@@ -178,4 +178,6 @@ template void igl::point_simplex_squared_distance<3, Eigen::Matrix<double, 1, 3,
template void igl::point_simplex_squared_distance<3, Eigen::Matrix<double, 1, 3, 1, 1, 3>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, double, Eigen::Matrix<double, 1, 3, 1, 1, 3> >(Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>::Index, double&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, 3, 1, 1, 1, 3> >&);
template void igl::point_simplex_squared_distance<2, Eigen::Matrix<double, 1, 2, 1, 1, 2>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, double, Eigen::Matrix<double, 1, 2, 1, 1, 2> >(Eigen::MatrixBase<Eigen::Matrix<double, 1, 2, 1, 1, 2> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>::Index, double&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 2, 1, 1, 2> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, 1, 2, 1, 1, 2> >&);
template void igl::point_simplex_squared_distance<2, Eigen::Matrix<double, 1, 2, 1, 1, 2>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1>, double, Eigen::Matrix<double, 1, 2, 1, 1, 2> >(Eigen::MatrixBase<Eigen::Matrix<double, 1, 2, 1, 1, 2> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, Eigen::Matrix<int, -1, -1, 0, -1, -1>::Index, double&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 2, 1, 1, 2> >&, Eigen::PlainObjectBase<Eigen::Matrix<double, 2, 1, 1, 1, 2> >&);
+
+template void igl::point_simplex_squared_distance<3, Eigen::Matrix<float, 1, 3, 1, 1, 3>, Eigen::Map<Eigen::Matrix<float, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> >, Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> >, float, Eigen::Matrix<float, 1, 3, 1, 1, 3> >(Eigen::MatrixBase<Eigen::Matrix<float, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<float, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > > const&, Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > > const&, Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> >::Index, float&, Eigen::MatrixBase<Eigen::Matrix<float, 1, 3, 1, 1, 3> >&);
#endif
diff --git a/include/igl/ray_box_intersect.cpp b/include/igl/ray_box_intersect.cpp
index 4a88b89e..b547f8f8 100644
--- a/include/igl/ray_box_intersect.cpp
+++ b/include/igl/ray_box_intersect.cpp
@@ -147,4 +147,6 @@ IGL_INLINE bool igl::ray_box_intersect(
#ifdef IGL_STATIC_LIBRARY
// Explicit template instantiation
template bool igl::ray_box_intersect<Eigen::Matrix<double, 1, 3, 1, 1, 3>, Eigen::Matrix<double, 1, 3, 1, 1, 3>, double>(Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::AlignedBox<double, 3> const&, double const&, double const&, double&, double&);
+
+template bool igl::ray_box_intersect<Eigen::Matrix<float, 1, 3, 1, 1, 3>, Eigen::Matrix<float, 1, 3, 1, 1, 3>, float>(Eigen::MatrixBase<Eigen::Matrix<float, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<float, 1, 3, 1, 1, 3> > const&, Eigen::AlignedBox<float, 3> const&, float const&, float const&, float&, float&);
#endif
diff --git a/include/igl/ray_mesh_intersect.cpp b/include/igl/ray_mesh_intersect.cpp
index 9a70a22b..4233e722 100644
--- a/include/igl/ray_mesh_intersect.cpp
+++ b/include/igl/ray_mesh_intersect.cpp
@@ -83,4 +83,7 @@ IGL_INLINE bool igl::ray_mesh_intersect(
template bool igl::ray_mesh_intersect<Eigen::Matrix<float, 3, 1, 0, 3, 1>, Eigen::Matrix<float, 3, 1, 0, 3, 1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<float, 3, 1, 0, 3, 1> > const&, Eigen::MatrixBase<Eigen::Matrix<float, 3, 1, 0, 3, 1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, std::vector<igl::Hit, std::allocator<igl::Hit> >&);
template bool igl::ray_mesh_intersect<Eigen::Matrix<float, 3, 1, 0, 3, 1>, Eigen::Matrix<float, 3, 1, 0, 3, 1>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Matrix<int, -1, -1, 0, -1, -1> >(Eigen::MatrixBase<Eigen::Matrix<float, 3, 1, 0, 3, 1> > const&, Eigen::MatrixBase<Eigen::Matrix<float, 3, 1, 0, 3, 1> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> > const&, igl::Hit&);
template bool igl::ray_mesh_intersect<Eigen::Matrix<double, 1, 3, 1, 1, 3>, Eigen::Matrix<double, 1, 3, 1, 1, 3>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Block<Eigen::Matrix<int, -1, -1, 0, -1, -1> const, 1, -1, false> >(Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Block<Eigen::Matrix<int, -1, -1, 0, -1, -1> const, 1, -1, false> > const&, igl::Hit&);
+template bool igl::ray_mesh_intersect<Eigen::Matrix<double, 1, 3, 1, 1, 3>, Eigen::Matrix<double, 1, 3, 1, 1, 3>, Eigen::Matrix<double, -1, -1, 0, -1, -1>, Eigen::Block<Eigen::Matrix<int, -1, -1, 0, -1, -1> const, 1, -1, false> >(Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<double, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, Eigen::MatrixBase<Eigen::Block<Eigen::Matrix<int, -1, -1, 0, -1, -1> const, 1, -1, false> > const&, std::vector<igl::Hit, std::allocator<igl::Hit> >&);
+
+template bool igl::ray_mesh_intersect<Eigen::Matrix<float, 1, 3, 1, 1, 3>, Eigen::Matrix<float, 1, 3, 1, 1, 3>, Eigen::Map<Eigen::Matrix<float, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> >, Eigen::Block<Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > const, 1, -1, true> >(Eigen::MatrixBase<Eigen::Matrix<float, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Matrix<float, 1, 3, 1, 1, 3> > const&, Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<float, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > > const&, Eigen::MatrixBase<Eigen::Block<Eigen::Map<Eigen::Matrix<int, -1, -1, 3, -1, -1> const, 0, Eigen::Stride<0, 0> > const, 1, -1, true> > const&, std::vector<igl::Hit, std::allocator<igl::Hit> >&);
#endif

View file

@ -1,4 +1,4 @@
From ee867b9f226412c0f3b83fa01cd43539acc4ed95 Mon Sep 17 00:00:00 2001 From e48f4a835fe7cb391f9f90945472bd367fb4c4f1 Mon Sep 17 00:00:00 2001
From: tamasmeszaros <meszaros.q@gmail.com> From: tamasmeszaros <meszaros.q@gmail.com>
Date: Wed, 16 Oct 2019 17:42:50 +0200 Date: Wed, 16 Oct 2019 17:42:50 +0200
Subject: [PATCH] Build fixes for PrusaSlicer integration Subject: [PATCH] Build fixes for PrusaSlicer integration
@ -7,17 +7,17 @@ Subject: [PATCH] Build fixes for PrusaSlicer integration
CMakeLists.txt | 3 - CMakeLists.txt | 3 -
cmake/FindBlosc.cmake | 218 --------------- cmake/FindBlosc.cmake | 218 ---------------
cmake/FindCppUnit.cmake | 4 +- cmake/FindCppUnit.cmake | 4 +-
cmake/FindIlmBase.cmake | 337 ----------------------- cmake/FindIlmBase.cmake | 337 ----------------------
cmake/FindOpenEXR.cmake | 329 ---------------------- cmake/FindOpenEXR.cmake | 329 ----------------------
cmake/FindOpenVDB.cmake | 19 +- cmake/FindOpenVDB.cmake | 19 +-
cmake/FindTBB.cmake | 593 ++++++++++++++++++++-------------------- cmake/FindTBB.cmake | 605 ++++++++++++++++++++--------------------
openvdb/CMakeLists.txt | 13 +- openvdb/CMakeLists.txt | 13 +-
openvdb/Grid.cc | 3 + openvdb/Grid.cc | 3 +
openvdb/PlatformConfig.h | 9 +- openvdb/PlatformConfig.h | 9 +-
openvdb/cmd/CMakeLists.txt | 4 +- openvdb/cmd/CMakeLists.txt | 4 +-
openvdb/unittest/CMakeLists.txt | 3 +- openvdb/unittest/CMakeLists.txt | 3 +-
openvdb/unittest/TestFile.cc | 2 +- openvdb/unittest/TestFile.cc | 2 +-
13 files changed, 325 insertions(+), 1212 deletions(-) 13 files changed, 336 insertions(+), 1213 deletions(-)
delete mode 100644 cmake/FindBlosc.cmake delete mode 100644 cmake/FindBlosc.cmake
delete mode 100644 cmake/FindIlmBase.cmake delete mode 100644 cmake/FindIlmBase.cmake
delete mode 100644 cmake/FindOpenEXR.cmake delete mode 100644 cmake/FindOpenEXR.cmake
@ -1011,10 +1011,10 @@ index 63a2eda..6211071 100644
endforeach() endforeach()
diff --git a/cmake/FindTBB.cmake b/cmake/FindTBB.cmake diff --git a/cmake/FindTBB.cmake b/cmake/FindTBB.cmake
index bdf9c81..ffdee03 100644 index bdf9c81..c6bdec9 100644
--- a/cmake/FindTBB.cmake --- a/cmake/FindTBB.cmake
+++ b/cmake/FindTBB.cmake +++ b/cmake/FindTBB.cmake
@@ -1,333 +1,322 @@ @@ -1,333 +1,332 @@
-# Copyright (c) DreamWorks Animation LLC -# Copyright (c) DreamWorks Animation LLC
+# The MIT License (MIT) +# The MIT License (MIT)
# #
@ -1205,10 +1205,6 @@ index bdf9c81..ffdee03 100644
+# +#
+# This module will also create the "tbb" target that may be used when building +# This module will also create the "tbb" target that may be used when building
+# executables and libraries. +# executables and libraries.
+
+include(FindPackageHandleStandardArgs)
+
+if(NOT TBB_FOUND)
-mark_as_advanced( -mark_as_advanced(
- Tbb_INCLUDE_DIR - Tbb_INCLUDE_DIR
@ -1227,6 +1223,39 @@ index bdf9c81..ffdee03 100644
- foreach(COMPONENT ${TBB_FIND_COMPONENTS}) - foreach(COMPONENT ${TBB_FIND_COMPONENTS})
- if(NOT ${COMPONENT} IN_LIST _TBB_COMPONENT_LIST) - if(NOT ${COMPONENT} IN_LIST _TBB_COMPONENT_LIST)
- list(APPEND _IGNORED_COMPONENTS ${COMPONENT}) - list(APPEND _IGNORED_COMPONENTS ${COMPONENT})
- endif()
- endforeach()
+unset(TBB_FOUND CACHE)
+unset(TBB_INCLUDE_DIRS CACHE)
+unset(TBB_LIBRARIES)
+unset(TBB_LIBRARIES_DEBUG)
+unset(TBB_LIBRARIES_RELEASE)
- if(_IGNORED_COMPONENTS)
- message(STATUS "Ignoring unknown components of TBB:")
- foreach(COMPONENT ${_IGNORED_COMPONENTS})
- message(STATUS " ${COMPONENT}")
- endforeach()
- list(REMOVE_ITEM TBB_FIND_COMPONENTS ${_IGNORED_COMPONENTS})
- endif()
-else()
- set(_TBB_COMPONENTS_PROVIDED FALSE)
- set(TBB_FIND_COMPONENTS ${_TBB_COMPONENT_LIST})
-endif()
+include(FindPackageHandleStandardArgs)
+
+find_package(Threads QUIET REQUIRED)
-# Append TBB_ROOT or $ENV{TBB_ROOT} if set (prioritize the direct cmake var)
-set(_TBB_ROOT_SEARCH_DIR "")
+if(NOT TBB_FOUND)
-if(TBB_ROOT)
- list(APPEND _TBB_ROOT_SEARCH_DIR ${TBB_ROOT})
-else()
- set(_ENV_TBB_ROOT $ENV{TBB_ROOT})
- if(_ENV_TBB_ROOT)
- list(APPEND _TBB_ROOT_SEARCH_DIR ${_ENV_TBB_ROOT})
+ ################################## + ##################################
+ # Check the build type + # Check the build type
+ ################################## + ##################################
@ -1241,7 +1270,8 @@ index bdf9c81..ffdee03 100644
+ set(TBB_BUILD_TYPE DEBUG) + set(TBB_BUILD_TYPE DEBUG)
+ else() + else()
+ set(TBB_BUILD_TYPE RELEASE) + set(TBB_BUILD_TYPE RELEASE)
+ endif() endif()
-endif()
+ +
+ ################################## + ##################################
+ # Set the TBB search directories + # Set the TBB search directories
@ -1261,7 +1291,53 @@ index bdf9c81..ffdee03 100644
+ else() + else()
+ set(TBB_ARCHITECTURE "ia32") + set(TBB_ARCHITECTURE "ia32")
+ endif() + endif()
+
-# Additionally try and use pkconfig to find Tbb
-
-find_package(PkgConfig)
-pkg_check_modules(PC_Tbb QUIET tbb)
-
-# ------------------------------------------------------------------------
-# Search for tbb include DIR
-# ------------------------------------------------------------------------
-
-set(_TBB_INCLUDE_SEARCH_DIRS "")
-list(APPEND _TBB_INCLUDE_SEARCH_DIRS
- ${TBB_INCLUDEDIR}
- ${_TBB_ROOT_SEARCH_DIR}
- ${PC_Tbb_INCLUDE_DIRS}
- ${SYSTEM_LIBRARY_PATHS}
-)
-
-# Look for a standard tbb header file.
-find_path(Tbb_INCLUDE_DIR tbb/tbb_stddef.h
- NO_DEFAULT_PATH
- PATHS ${_TBB_INCLUDE_SEARCH_DIRS}
- PATH_SUFFIXES include
-)
-
-if(EXISTS "${Tbb_INCLUDE_DIR}/tbb/tbb_stddef.h")
- file(STRINGS "${Tbb_INCLUDE_DIR}/tbb/tbb_stddef.h"
- _tbb_version_major_string REGEX "#define TBB_VERSION_MAJOR "
- )
- string(REGEX REPLACE "#define TBB_VERSION_MAJOR" ""
- _tbb_version_major_string "${_tbb_version_major_string}"
- )
- string(STRIP "${_tbb_version_major_string}" Tbb_VERSION_MAJOR)
-
- file(STRINGS "${Tbb_INCLUDE_DIR}/tbb/tbb_stddef.h"
- _tbb_version_minor_string REGEX "#define TBB_VERSION_MINOR "
- )
- string(REGEX REPLACE "#define TBB_VERSION_MINOR" ""
- _tbb_version_minor_string "${_tbb_version_minor_string}"
- )
- string(STRIP "${_tbb_version_minor_string}" Tbb_VERSION_MINOR)
-
- unset(_tbb_version_major_string)
- unset(_tbb_version_minor_string)
-
- set(Tbb_VERSION ${Tbb_VERSION_MAJOR}.${Tbb_VERSION_MINOR})
-endif()
+ # Set the TBB search library path search suffix based on the version of VC + # Set the TBB search library path search suffix based on the version of VC
+ if(WINDOWS_STORE) + if(WINDOWS_STORE)
+ set(TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc11_ui") + set(TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc11_ui")
@ -1273,15 +1349,11 @@ index bdf9c81..ffdee03 100644
+ set(TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc11") + set(TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc11")
+ elseif(MSVC10) + elseif(MSVC10)
+ set(TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc10") + set(TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc10")
endif() + endif()
- endforeach()
- if(_IGNORED_COMPONENTS) -# ------------------------------------------------------------------------
- message(STATUS "Ignoring unknown components of TBB:") -# Search for TBB lib DIR
- foreach(COMPONENT ${_IGNORED_COMPONENTS}) -# ------------------------------------------------------------------------
- message(STATUS " ${COMPONENT}")
- endforeach()
- list(REMOVE_ITEM TBB_FIND_COMPONENTS ${_IGNORED_COMPONENTS})
+ # Add the library path search suffix for the VC independent version of TBB + # Add the library path search suffix for the VC independent version of TBB
+ list(APPEND TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc_mt") + list(APPEND TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc_mt")
+ +
@ -1332,110 +1404,19 @@ index bdf9c81..ffdee03 100644
+ string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" + string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1"
+ TBB_INTERFACE_VERSION "${_tbb_version_file}") + TBB_INTERFACE_VERSION "${_tbb_version_file}")
+ set(TBB_VERSION "${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR}") + set(TBB_VERSION "${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR}")
endif() + endif()
-else()
- set(_TBB_COMPONENTS_PROVIDED FALSE)
- set(TBB_FIND_COMPONENTS ${_TBB_COMPONENT_LIST})
-endif()
-# Append TBB_ROOT or $ENV{TBB_ROOT} if set (prioritize the direct cmake var) -set(_TBB_LIBRARYDIR_SEARCH_DIRS "")
-set(_TBB_ROOT_SEARCH_DIR "")
+ ################################## + ##################################
+ # Find TBB components + # Find TBB components
+ ################################## + ##################################
-if(TBB_ROOT) -# Append to _TBB_LIBRARYDIR_SEARCH_DIRS in priority order
- list(APPEND _TBB_ROOT_SEARCH_DIR ${TBB_ROOT})
-else()
- set(_ENV_TBB_ROOT $ENV{TBB_ROOT})
- if(_ENV_TBB_ROOT)
- list(APPEND _TBB_ROOT_SEARCH_DIR ${_ENV_TBB_ROOT})
+ if(TBB_VERSION VERSION_LESS 4.3) + if(TBB_VERSION VERSION_LESS 4.3)
+ set(TBB_SEARCH_COMPOMPONENTS tbb_preview tbbmalloc tbb) + set(TBB_SEARCH_COMPOMPONENTS tbb_preview tbbmalloc tbb)
+ else() + else()
+ set(TBB_SEARCH_COMPOMPONENTS tbb_preview tbbmalloc_proxy tbbmalloc tbb) + set(TBB_SEARCH_COMPOMPONENTS tbb_preview tbbmalloc_proxy tbbmalloc tbb)
endif()
-endif()
-# Additionally try and use pkconfig to find Tbb
-
-find_package(PkgConfig)
-pkg_check_modules(PC_Tbb QUIET tbb)
-
-# ------------------------------------------------------------------------
-# Search for tbb include DIR
-# ------------------------------------------------------------------------
-
-set(_TBB_INCLUDE_SEARCH_DIRS "")
-list(APPEND _TBB_INCLUDE_SEARCH_DIRS
- ${TBB_INCLUDEDIR}
- ${_TBB_ROOT_SEARCH_DIR}
- ${PC_Tbb_INCLUDE_DIRS}
- ${SYSTEM_LIBRARY_PATHS}
-)
-
-# Look for a standard tbb header file.
-find_path(Tbb_INCLUDE_DIR tbb/tbb_stddef.h
- NO_DEFAULT_PATH
- PATHS ${_TBB_INCLUDE_SEARCH_DIRS}
- PATH_SUFFIXES include
-)
-
-if(EXISTS "${Tbb_INCLUDE_DIR}/tbb/tbb_stddef.h")
- file(STRINGS "${Tbb_INCLUDE_DIR}/tbb/tbb_stddef.h"
- _tbb_version_major_string REGEX "#define TBB_VERSION_MAJOR "
- )
- string(REGEX REPLACE "#define TBB_VERSION_MAJOR" ""
- _tbb_version_major_string "${_tbb_version_major_string}"
- )
- string(STRIP "${_tbb_version_major_string}" Tbb_VERSION_MAJOR)
-
- file(STRINGS "${Tbb_INCLUDE_DIR}/tbb/tbb_stddef.h"
- _tbb_version_minor_string REGEX "#define TBB_VERSION_MINOR "
- )
- string(REGEX REPLACE "#define TBB_VERSION_MINOR" ""
- _tbb_version_minor_string "${_tbb_version_minor_string}"
- )
- string(STRIP "${_tbb_version_minor_string}" Tbb_VERSION_MINOR)
-
- unset(_tbb_version_major_string)
- unset(_tbb_version_minor_string)
-
- set(Tbb_VERSION ${Tbb_VERSION_MAJOR}.${Tbb_VERSION_MINOR})
-endif()
+ if(TBB_STATIC)
+ set(TBB_STATIC_SUFFIX "_static")
+ endif() + endif()
+
+ # Find each component
+ foreach(_comp ${TBB_SEARCH_COMPOMPONENTS})
+ if(";${TBB_FIND_COMPONENTS};tbb;" MATCHES ";${_comp};")
-# ------------------------------------------------------------------------
-# Search for TBB lib DIR
-# ------------------------------------------------------------------------
+ # Search for the libraries
+ find_library(TBB_${_comp}_LIBRARY_RELEASE ${_comp}${TBB_STATIC_SUFFIX}
+ HINTS ${TBB_LIBRARY} ${TBB_SEARCH_DIR}
+ PATHS ${TBB_DEFAULT_SEARCH_DIR} ENV LIBRARY_PATH
+ PATH_SUFFIXES ${TBB_LIB_PATH_SUFFIX})
-set(_TBB_LIBRARYDIR_SEARCH_DIRS "")
+ find_library(TBB_${_comp}_LIBRARY_DEBUG ${_comp}${TBB_STATIC_SUFFIX}_debug
+ HINTS ${TBB_LIBRARY} ${TBB_SEARCH_DIR}
+ PATHS ${TBB_DEFAULT_SEARCH_DIR} ENV LIBRARY_PATH
+ PATH_SUFFIXES ${TBB_LIB_PATH_SUFFIX})
-# Append to _TBB_LIBRARYDIR_SEARCH_DIRS in priority order
+ if(TBB_${_comp}_LIBRARY_DEBUG)
+ list(APPEND TBB_LIBRARIES_DEBUG "${TBB_${_comp}_LIBRARY_DEBUG}")
+ endif()
+ if(TBB_${_comp}_LIBRARY_RELEASE)
+ list(APPEND TBB_LIBRARIES_RELEASE "${TBB_${_comp}_LIBRARY_RELEASE}")
+ endif()
+ if(TBB_${_comp}_LIBRARY_${TBB_BUILD_TYPE} AND NOT TBB_${_comp}_LIBRARY)
+ set(TBB_${_comp}_LIBRARY "${TBB_${_comp}_LIBRARY_${TBB_BUILD_TYPE}}")
+ endif()
-set(_TBB_LIBRARYDIR_SEARCH_DIRS "") -set(_TBB_LIBRARYDIR_SEARCH_DIRS "")
-list(APPEND _TBB_LIBRARYDIR_SEARCH_DIRS -list(APPEND _TBB_LIBRARYDIR_SEARCH_DIRS
@ -1444,41 +1425,35 @@ index bdf9c81..ffdee03 100644
- ${PC_Tbb_LIBRARY_DIRS} - ${PC_Tbb_LIBRARY_DIRS}
- ${SYSTEM_LIBRARY_PATHS} - ${SYSTEM_LIBRARY_PATHS}
-) -)
+ if(TBB_${_comp}_LIBRARY AND EXISTS "${TBB_${_comp}_LIBRARY}") + if(TBB_STATIC)
+ set(TBB_${_comp}_FOUND TRUE) + set(TBB_STATIC_SUFFIX "_static")
+ else() + endif()
+ set(TBB_${_comp}_FOUND FALSE)
+ endif()
-set(TBB_PATH_SUFFIXES -set(TBB_PATH_SUFFIXES
- lib64 - lib64
- lib - lib
-) -)
+ # Mark internal variables as advanced + # Find each component
+ mark_as_advanced(TBB_${_comp}_LIBRARY_RELEASE) + foreach(_comp ${TBB_SEARCH_COMPOMPONENTS})
+ mark_as_advanced(TBB_${_comp}_LIBRARY_DEBUG) + if(";${TBB_FIND_COMPONENTS};tbb;" MATCHES ";${_comp};")
+ mark_as_advanced(TBB_${_comp}_LIBRARY)
-# platform branching -# platform branching
+ endif() + unset(TBB_${_comp}_LIBRARY_DEBUG CACHE)
+ endforeach() + unset(TBB_${_comp}_LIBRARY_RELEASE CACHE)
-if(UNIX) -if(UNIX)
- list(INSERT TBB_PATH_SUFFIXES 0 lib/x86_64-linux-gnu) - list(INSERT TBB_PATH_SUFFIXES 0 lib/x86_64-linux-gnu)
-endif() -endif()
+ ################################## + # Search for the libraries
+ # Set compile flags and libraries + find_library(TBB_${_comp}_LIBRARY_RELEASE ${_comp}${TBB_STATIC_SUFFIX}
+ ################################## + HINTS ${TBB_LIBRARY} ${TBB_SEARCH_DIR}
+ PATHS ${TBB_DEFAULT_SEARCH_DIR} ENV LIBRARY_PATH
+ PATH_SUFFIXES ${TBB_LIB_PATH_SUFFIX})
-if(APPLE) -if(APPLE)
- if(TBB_FOR_CLANG) - if(TBB_FOR_CLANG)
- list(INSERT TBB_PATH_SUFFIXES 0 lib/libc++) - list(INSERT TBB_PATH_SUFFIXES 0 lib/libc++)
+ set(TBB_DEFINITIONS_RELEASE "") - endif()
+ set(TBB_DEFINITIONS_DEBUG "TBB_USE_DEBUG=1")
+
+ if(TBB_LIBRARIES_${TBB_BUILD_TYPE})
+ set(TBB_LIBRARIES "${TBB_LIBRARIES_${TBB_BUILD_TYPE}}")
endif()
-elseif(WIN32) -elseif(WIN32)
- if(MSVC10) - if(MSVC10)
- set(TBB_VC_DIR vc10) - set(TBB_VC_DIR vc10)
@ -1498,45 +1473,26 @@ index bdf9c81..ffdee03 100644
- else() - else()
- list(INSERT TBB_PATH_SUFFIXES 0 lib/intel64/gcc4.4) - list(INSERT TBB_PATH_SUFFIXES 0 lib/intel64/gcc4.4)
- endif() - endif()
+ - endif()
+ if(NOT MSVC AND NOT TBB_LIBRARIES)
+ set(TBB_LIBRARIES ${TBB_LIBRARIES_RELEASE})
endif()
-endif() -endif()
+ find_library(TBB_${_comp}_LIBRARY_DEBUG ${_comp}${TBB_STATIC_SUFFIX}_debug
+ HINTS ${TBB_LIBRARY} ${TBB_SEARCH_DIR}
+ PATHS ${TBB_DEFAULT_SEARCH_DIR} ENV LIBRARY_PATH
+ PATH_SUFFIXES ${TBB_LIB_PATH_SUFFIX})
-if(UNIX AND TBB_USE_STATIC_LIBS) -if(UNIX AND TBB_USE_STATIC_LIBS)
- set(_TBB_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) - set(_TBB_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") - set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
-endif() -endif()
+ if (MSVC AND TBB_STATIC) + if(TBB_${_comp}_LIBRARY_DEBUG)
+ set(TBB_DEFINITIONS __TBB_NO_IMPLICIT_LINKAGE) + list(APPEND TBB_LIBRARIES_DEBUG "${TBB_${_comp}_LIBRARY_DEBUG}")
+ endif () + endif()
+ + if(TBB_${_comp}_LIBRARY_RELEASE)
+ unset (TBB_STATIC_SUFFIX) + list(APPEND TBB_LIBRARIES_RELEASE "${TBB_${_comp}_LIBRARY_RELEASE}")
+ + endif()
+ find_package_handle_standard_args(TBB + if(TBB_${_comp}_LIBRARY_${TBB_BUILD_TYPE} AND NOT TBB_${_comp}_LIBRARY)
+ REQUIRED_VARS TBB_INCLUDE_DIRS TBB_LIBRARIES + set(TBB_${_comp}_LIBRARY "${TBB_${_comp}_LIBRARY_${TBB_BUILD_TYPE}}")
+ HANDLE_COMPONENTS + endif()
+ VERSION_VAR TBB_VERSION)
+
+ ##################################
+ # Create targets
+ ##################################
+
+ if(NOT CMAKE_VERSION VERSION_LESS 3.0 AND TBB_FOUND)
+ add_library(TBB::tbb UNKNOWN IMPORTED)
+ set_target_properties(TBB::tbb PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES ${TBB_INCLUDE_DIRS}
+ IMPORTED_LOCATION ${TBB_LIBRARIES})
+ if(TBB_LIBRARIES_RELEASE AND TBB_LIBRARIES_DEBUG)
+ set_target_properties(TBB::tbb PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS "${TBB_DEFINITIONS};$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:${TBB_DEFINITIONS_DEBUG}>;$<$<CONFIG:Release>:${TBB_DEFINITIONS_RELEASE}>"
+ IMPORTED_LOCATION_DEBUG ${TBB_LIBRARIES_DEBUG}
+ IMPORTED_LOCATION_RELWITHDEBINFO ${TBB_LIBRARIES_RELEASE}
+ IMPORTED_LOCATION_RELEASE ${TBB_LIBRARIES_RELEASE}
+ IMPORTED_LOCATION_MINSIZEREL ${TBB_LIBRARIES_RELEASE}
+ )
+ endif()
-set(Tbb_LIB_COMPONENTS "") -set(Tbb_LIB_COMPONENTS "")
- -
@ -1559,19 +1515,84 @@ index bdf9c81..ffdee03 100644
- # Extract the directory and apply the matched text (in brackets) - # Extract the directory and apply the matched text (in brackets)
- get_filename_component(Tbb_${COMPONENT}_DIR "${Tbb_${COMPONENT}_LIBRARY}" DIRECTORY) - get_filename_component(Tbb_${COMPONENT}_DIR "${Tbb_${COMPONENT}_LIBRARY}" DIRECTORY)
- set(Tbb_${COMPONENT}_LIBRARY "${Tbb_${COMPONENT}_DIR}/${CMAKE_MATCH_1}") - set(Tbb_${COMPONENT}_LIBRARY "${Tbb_${COMPONENT}_DIR}/${CMAKE_MATCH_1}")
- endif() + if(TBB_${_comp}_LIBRARY AND EXISTS "${TBB_${_comp}_LIBRARY}")
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(TBB_${_comp}_FOUND TRUE)
+ find_package(Threads QUIET REQUIRED) + else()
+ set_target_properties(TBB::tbb PROPERTIES INTERFACE_LINK_LIBRARIES "${CMAKE_DL_LIBS};Threads::Threads") + set(TBB_${_comp}_FOUND FALSE)
endif()
+
+ # Mark internal variables as advanced
+ mark_as_advanced(TBB_${_comp}_LIBRARY_RELEASE)
+ mark_as_advanced(TBB_${_comp}_LIBRARY_DEBUG)
+ mark_as_advanced(TBB_${_comp}_LIBRARY)
+
endif() endif()
endif() - endif()
+ endforeach()
- list(APPEND Tbb_LIB_COMPONENTS ${Tbb_${COMPONENT}_LIBRARY}) - list(APPEND Tbb_LIB_COMPONENTS ${Tbb_${COMPONENT}_LIBRARY})
- + ##################################
+ # Set compile flags and libraries
+ ##################################
- if(Tbb_${COMPONENT}_LIBRARY) - if(Tbb_${COMPONENT}_LIBRARY)
- set(TBB_${COMPONENT}_FOUND TRUE) - set(TBB_${COMPONENT}_FOUND TRUE)
- else() - else()
- set(TBB_${COMPONENT}_FOUND FALSE) - set(TBB_${COMPONENT}_FOUND FALSE)
+ set(TBB_DEFINITIONS_RELEASE "")
+ set(TBB_DEFINITIONS_DEBUG "TBB_USE_DEBUG=1")
+
+ if(TBB_LIBRARIES_${TBB_BUILD_TYPE})
+ set(TBB_LIBRARIES "${TBB_LIBRARIES_${TBB_BUILD_TYPE}}")
+ endif()
+
+ if(NOT MSVC AND NOT TBB_LIBRARIES)
+ set(TBB_LIBRARIES ${TBB_LIBRARIES_RELEASE})
endif()
-endforeach()
-if(UNIX AND TBB_USE_STATIC_LIBS)
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_TBB_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
- unset(_TBB_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
-endif()
+ set(TBB_DEFINITIONS "")
+ if (MSVC AND TBB_STATIC)
+ set(TBB_DEFINITIONS __TBB_NO_IMPLICIT_LINKAGE)
+ endif ()
+
+ unset (TBB_STATIC_SUFFIX)
+
+ find_package_handle_standard_args(TBB
+ REQUIRED_VARS TBB_INCLUDE_DIRS TBB_LIBRARIES
+ FAIL_MESSAGE "TBB library cannot be found. Consider set TBBROOT environment variable."
+ HANDLE_COMPONENTS
+ VERSION_VAR TBB_VERSION)
+
+ ##################################
+ # Create targets
+ ##################################
+
+ if(NOT CMAKE_VERSION VERSION_LESS 3.0 AND TBB_FOUND)
+ add_library(TBB::tbb UNKNOWN IMPORTED)
+ set_target_properties(TBB::tbb PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS "${TBB_DEFINITIONS}"
+ INTERFACE_LINK_LIBRARIES "Threads::Threads;${CMAKE_DL_LIBS}"
+ INTERFACE_INCLUDE_DIRECTORIES ${TBB_INCLUDE_DIRS}
+ IMPORTED_LOCATION ${TBB_LIBRARIES})
+ if(TBB_LIBRARIES_RELEASE AND TBB_LIBRARIES_DEBUG)
+ set_target_properties(TBB::tbb PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS "${TBB_DEFINITIONS};$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:${TBB_DEFINITIONS_DEBUG}>;$<$<CONFIG:Release>:${TBB_DEFINITIONS_RELEASE}>"
+ IMPORTED_LOCATION_DEBUG ${TBB_LIBRARIES_DEBUG}
+ IMPORTED_LOCATION_RELWITHDEBINFO ${TBB_LIBRARIES_RELEASE}
+ IMPORTED_LOCATION_RELEASE ${TBB_LIBRARIES_RELEASE}
+ IMPORTED_LOCATION_MINSIZEREL ${TBB_LIBRARIES_RELEASE}
+ )
+ endif()
+ endif()
-# ------------------------------------------------------------------------
-# Cache and set TBB_FOUND
-# ------------------------------------------------------------------------
+ mark_as_advanced(TBB_INCLUDE_DIRS TBB_LIBRARIES) + mark_as_advanced(TBB_INCLUDE_DIRS TBB_LIBRARIES)
+ +
+ unset(TBB_ARCHITECTURE) + unset(TBB_ARCHITECTURE)
@ -1588,18 +1609,8 @@ index bdf9c81..ffdee03 100644
+ message(STATUS " TBB_LIBRARIES_DEBUG = ${TBB_LIBRARIES_DEBUG}") + message(STATUS " TBB_LIBRARIES_DEBUG = ${TBB_LIBRARIES_DEBUG}")
+ message(STATUS " TBB_DEFINITIONS_RELEASE = ${TBB_DEFINITIONS_RELEASE}") + message(STATUS " TBB_DEFINITIONS_RELEASE = ${TBB_DEFINITIONS_RELEASE}")
+ message(STATUS " TBB_LIBRARIES_RELEASE = ${TBB_LIBRARIES_RELEASE}") + message(STATUS " TBB_LIBRARIES_RELEASE = ${TBB_LIBRARIES_RELEASE}")
endif() + endif()
-endforeach()
-if(UNIX AND TBB_USE_STATIC_LIBS)
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_TBB_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
- unset(_TBB_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
-endif()
-
-# ------------------------------------------------------------------------
-# Cache and set TBB_FOUND
-# ------------------------------------------------------------------------
-
-include(FindPackageHandleStandardArgs) -include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(TBB -find_package_handle_standard_args(TBB
- FOUND_VAR TBB_FOUND - FOUND_VAR TBB_FOUND

View file

@ -1,6 +1,6 @@
# Dependency report for PrusaSlicer # Dependency report for PrusaSlicer
## Possible dynamic linking on Linux ## Possible dynamic linking on Linux
* zlib: This should not be even mentioned in our cmake scripts but due to a bug in the system libraries of gtk it has to be linked to PrusaSlicer. * zlib: Strict dependency required from the system, linked dynamically. Many other libs depend on zlib.
* wxWidgets: searches for wx-3.1 by default, but with cmake option `SLIC3R_WX_STABLE=ON` it will use wx-3.0 bundled with most distros. * wxWidgets: searches for wx-3.1 by default, but with cmake option `SLIC3R_WX_STABLE=ON` it will use wx-3.0 bundled with most distros.
* libcurl * libcurl
* tbb * tbb
@ -10,13 +10,13 @@
* expat * expat
* openssl * openssl
* nlopt * nlopt
* gtest * openvdb: This library depends on other libs, namely boost, zlib, openexr, blosc (not strictly), etc...
## External libraries in source tree ## External libraries in source tree
* ad-mesh: Lots of customization, have to be bundled in the source tree. * ad-mesh: Lots of customization, have to be bundled in the source tree.
* avrdude: Like ad-mesh, many customization, need to be in the source tree. * avrdude: Like ad-mesh, many customization, need to be in the source tree.
* clipper: An important library we have to have full control over it. We also have some slicer specific modifications. * clipper: An important library we have to have full control over it. We also have some slicer specific modifications.
* glu-libtess: This is an extract of the mesa/glu library not oficially available as a package. * glu-libtess: This is an extract of the mesa/glu library not officially available as a package.
* imgui: no packages for debian, author suggests using in the source tree * imgui: no packages for debian, author suggests using in the source tree
* miniz: No packages, author suggests using in the source tree * miniz: No packages, author suggests using in the source tree
* qhull: libqhull-dev does not contain libqhullcpp => link errors. Until it is fixed, we will use the builtin version. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=925540 * qhull: libqhull-dev does not contain libqhullcpp => link errors. Until it is fixed, we will use the builtin version. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=925540
@ -29,5 +29,6 @@
* igl * igl
* nanosvg * nanosvg
* agg * agg
* catch2: Only Arch has packages for catch2, other distros at most catch (v1.x). Being strictly header only, we bundle this in the source tree. Used for the unit-test suites.

View file

@ -2,7 +2,7 @@
# Building PrusaSlicer on UNIX/Linux # Building PrusaSlicer on UNIX/Linux
PrusaSlicer uses the CMake build system and requires several dependencies. PrusaSlicer uses the CMake build system and requires several dependencies.
The dependencies can be listed in `deps/deps-linux.cmake`, although they don't necessarily need to be as recent The dependencies can be listed in `deps/deps-linux.cmake` and `deps/deps-unix-common.cmake`, although they don't necessarily need to be as recent
as the versions listed - generally versions available on conservative Linux distros such as Debian stable or CentOS should suffice. as the versions listed - generally versions available on conservative Linux distros such as Debian stable or CentOS should suffice.
Perl is not required any more. Perl is not required any more.

View file

@ -375,7 +375,7 @@ public:
for(unsigned idx = 0; idx < fixeditems.size(); ++idx) { for(unsigned idx = 0; idx < fixeditems.size(); ++idx) {
Item& itm = fixeditems[idx]; Item& itm = fixeditems[idx];
itm.markAsFixedInBin(0); itm.markAsFixedInBin(itm.binId());
} }
m_pck.configure(m_pconf); m_pck.configure(m_pconf);

View file

@ -331,15 +331,18 @@ public:
// Let the firmware back up the active speed override value. // Let the firmware back up the active speed override value.
WipeTowerWriter& speed_override_backup() WipeTowerWriter& speed_override_backup()
{ {
m_gcode += "M220 B\n"; // This is only supported by Prusa at this point (https://github.com/prusa3d/PrusaSlicer/issues/3114)
if (m_gcode_flavor == gcfMarlin)
m_gcode += "M220 B\n";
return *this; return *this;
} }
// Let the firmware restore the active speed override value. // Let the firmware restore the active speed override value.
WipeTowerWriter& speed_override_restore() WipeTowerWriter& speed_override_restore()
{ {
m_gcode += "M220 R\n"; if (m_gcode_flavor == gcfMarlin)
m_gcode += "M220 R\n";
return *this; return *this;
} }

View file

@ -424,14 +424,19 @@ int copy_file(const std::string &from, const std::string &to)
static const auto perms = boost::filesystem::owner_read | boost::filesystem::owner_write | boost::filesystem::group_read | boost::filesystem::others_read; // aka 644 static const auto perms = boost::filesystem::owner_read | boost::filesystem::owner_write | boost::filesystem::group_read | boost::filesystem::others_read; // aka 644
// Make sure the file has correct permission both before and after we copy over it. // Make sure the file has correct permission both before and after we copy over it.
try { // NOTE: error_code variants are used here to supress expception throwing.
if (boost::filesystem::exists(target)) // Error code of permission() calls is ignored on purpose - if they fail,
boost::filesystem::permissions(target, perms); // the copy_file() function will fail appropriately and we don't want the permission()
boost::filesystem::copy_file(source, target, boost::filesystem::copy_option::overwrite_if_exists); // calls to cause needless failures on permissionless filesystems (ie. FATs on SD cards etc.)
boost::filesystem::permissions(target, perms); // or when the target file doesn't exist.
} catch (std::exception & /* ex */) { boost::system::error_code ec;
boost::filesystem::permissions(target, perms, ec);
boost::filesystem::copy_file(source, target, boost::filesystem::copy_option::overwrite_if_exists, ec);
if (ec) {
return -1; return -1;
} }
boost::filesystem::permissions(target, perms, ec);
return 0; return 0;
} }

View file

@ -10,7 +10,7 @@ target_include_directories(Catch2 INTERFACE ${CMAKE_CURRENT_LIST_DIR})
add_library(Catch2::Catch2 ALIAS Catch2) add_library(Catch2::Catch2 ALIAS Catch2)
include(Catch) include(Catch)
set(CATCH_EXTRA_ARGS "--durations yes" CACHE STRING "Extra arguments for catch2 test suites.") set(CATCH_EXTRA_ARGS "" CACHE STRING "Extra arguments for catch2 test suites.")
add_library(test_common INTERFACE) add_library(test_common INTERFACE)
target_compile_definitions(test_common INTERFACE TEST_DATA_DIR=R"\(${TEST_DATA_DIR}\)" CATCH_CONFIG_FAST_COMPILE) target_compile_definitions(test_common INTERFACE TEST_DATA_DIR=R"\(${TEST_DATA_DIR}\)" CATCH_CONFIG_FAST_COMPILE)

54
tests/catch_main.hpp Normal file
View file

@ -0,0 +1,54 @@
#ifndef CATCH_MAIN
#define CATCH_MAIN
#define CATCH_CONFIG_EXTERNAL_INTERFACES
#define CATCH_CONFIG_MAIN
#define CATCH_CONFIG_DEFAULT_REPORTER "verboseconsole"
#include <catch2/catch.hpp>
namespace Catch {
struct VerboseConsoleReporter : public ConsoleReporter {
double duration = 0.;
using ConsoleReporter::ConsoleReporter;
void testCaseStarting(TestCaseInfo const& _testInfo) override
{
Colour::use(Colour::Cyan);
stream << "Testing ";
Colour::use(Colour::None);
stream << _testInfo.name << std::endl;
ConsoleReporter::testCaseStarting(_testInfo);
}
void sectionStarting(const SectionInfo &_sectionInfo) override
{
if (_sectionInfo.name != currentTestCaseInfo->name)
stream << _sectionInfo.name << std::endl;
ConsoleReporter::sectionStarting(_sectionInfo);
}
void sectionEnded(const SectionStats &_sectionStats) override {
duration += _sectionStats.durationInSeconds;
ConsoleReporter::sectionEnded(_sectionStats);
}
void testCaseEnded(TestCaseStats const& stats) override
{
if (stats.totals.assertions.allOk()) {
Colour::use(Colour::BrightGreen);
stream << "Passed";
Colour::use(Colour::None);
stream << " in " << duration << " [seconds]\n" << std::endl;
}
duration = 0.;
ConsoleReporter::testCaseEnded(stats);
}
};
CATCH_REGISTER_REPORTER( "verboseconsole", VerboseConsoleReporter )
} // namespace Catch
#endif // CATCH_MAIN

View file

@ -1,5 +1,5 @@
#define CATCH_CONFIG_MAIN #define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp> #include <catch_main.hpp>
TEST_CASE("Is example succesful", "[example]") { TEST_CASE("Is example succesful", "[example]") {
REQUIRE(true); REQUIRE(true);

View file

@ -1,4 +1,3 @@
#define CATCH_CONFIG_MAIN #include <catch_main.hpp>
#include <catch2/catch.hpp>
#include "libslic3r/libslic3r.h" #include "libslic3r/libslic3r.h"

View file

@ -1,9 +1,7 @@
#define CATCH_CONFIG_MAIN #include <catch_main.hpp>
#include <catch2/catch.hpp>
#include <fstream> #include <fstream>
#include <libnest2d/libnest2d.hpp> #include <libnest2d/libnest2d.hpp>
#include "printer_parts.hpp" #include "printer_parts.hpp"
//#include <libnest2d/geometry_traits_nfp.hpp> //#include <libnest2d/geometry_traits_nfp.hpp>

View file

@ -1,5 +1,4 @@
#define CATCH_CONFIG_MAIN #include <catch_main.hpp>
#include <catch2/catch.hpp>
#include "libslic3r/libslic3r.h" #include "libslic3r/libslic3r.h"

View file

@ -1,5 +1,4 @@
#define CATCH_CONFIG_MAIN #include <catch_main.hpp>
#include <catch2/catch.hpp>
#include <unordered_set> #include <unordered_set>
#include <unordered_map> #include <unordered_map>

View file

@ -1,5 +1,4 @@
#define CATCH_CONFIG_MAIN #include <catch_main.hpp>
#include <catch2/catch.hpp>
#include "libslic3r/Time.hpp" #include "libslic3r/Time.hpp"