diff --git a/CMakeLists.txt b/CMakeLists.txt index 1242bba..eba5242 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -354,7 +354,6 @@ ELSEIF(MSVC) ENDIF() # supress warning for double to float conversion if Double precision is activated ADD_COMPILE_OPTIONS(/wd4244) - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /D_DEBUG /Zi /Od") # Allow user to disable PDBs if(ASSIMP_INSTALL_PDB) SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi") @@ -362,7 +361,7 @@ ELSEIF(MSVC) elseif((GENERATOR_IS_MULTI_CONFIG) OR (CMAKE_BUILD_TYPE MATCHES Release)) message("-- MSVC PDB generation disabled. Release binary will not be debuggable.") endif() - if(NOT CMAKE_CXX_FLAGS MATCHES "/utf-8") + if(NOT CMAKE_CXX_FLAGS MATCHES /utf-8) # Source code is encoded in UTF-8 ADD_COMPILE_OPTIONS(/source-charset:utf-8) endif() @@ -493,7 +492,7 @@ ENDIF() set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") -IF(ASSIMP_HUNTER_ENABLED) +IF(0) SET(CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}") SET(CMAKE_CONFIG_TEMPLATE_FILE "cmake-modules/assimp-hunter-config.cmake.in") SET(NAMESPACE "${PROJECT_NAME}::") @@ -501,7 +500,7 @@ IF(ASSIMP_HUNTER_ENABLED) SET(VERSION_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake") SET(PROJECT_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}Config.cmake") ELSE() - SET(CONFIG_INSTALL_DIR "${ASSIMP_LIB_INSTALL_DIR}/cmake/assimp-${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}") + set(CONFIG_INSTALL_DIR "${ASSIMP_LIB_INSTALL_DIR}/cmake/assimp") SET(CMAKE_CONFIG_TEMPLATE_FILE "cmake-modules/assimp-plain-config.cmake.in") string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWERCASE) SET(NAMESPACE "${PROJECT_NAME_LOWERCASE}::") @@ -516,7 +515,7 @@ set(INCLUDE_INSTALL_DIR "include") include(CMakePackageConfigHelpers) # Note: PROJECT_VERSION is used as a VERSION -write_basic_package_version_file("${VERSION_CONFIG}" COMPATIBILITY SameMajorVersion) +write_basic_package_version_file("${VERSION_CONFIG}" COMPATIBILITY AnyNewerVersion) configure_package_config_file( ${CMAKE_CONFIG_TEMPLATE_FILE} @@ -545,14 +544,13 @@ ENDIF() # Search for external dependencies, and build them from source if not found # Search for zlib -IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(ZLIB) - find_package(ZLIB CONFIG REQUIRED) +IF(1) + find_package(ZLIB REQUIRED) add_definitions(-DASSIMP_BUILD_NO_OWN_ZLIB) SET(ZLIB_FOUND TRUE) - SET(ZLIB_LIBRARIES ZLIB::zlib) - SET(ASSIMP_BUILD_MINIZIP TRUE) + set(ZLIB_LIBRARIES ZLIB::ZLIB) + set(ASSIMP_BUILD_MINIZIP OFF) ELSE() # If the zlib is already found outside, add an export in case assimpTargets can't find it. IF( ZLIB_FOUND AND ASSIMP_INSTALL) @@ -596,13 +594,13 @@ ELSE() INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) ENDIF() -IF( NOT IOS ) +IF( 0 ) IF( NOT ASSIMP_BUILD_MINIZIP ) use_pkgconfig(UNZIP minizip) ENDIF() ELSE () IF( NOT BUILD_SHARED_LIBS ) - IF( NOT ASSIMP_BUILD_MINIZIP ) + IF( 0 ) USE_PKGCONFIG(UNZIP minizip) ENDIF() ENDIF () diff --git a/cmake-modules/assimp-plain-config.cmake.in b/cmake-modules/assimp-plain-config.cmake.in index 6551dcb..dd65b0b 100644 --- a/cmake-modules/assimp-plain-config.cmake.in +++ b/cmake-modules/assimp-plain-config.cmake.in @@ -1,5 +1,17 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +if(NOT "@BUILD_SHARED_LIBS@") + find_dependency(zip CONFIG) + find_dependency(unofficial-minizip CONFIG) + find_dependency(pugixml CONFIG) + find_dependency(poly2tri CONFIG) + find_dependency(polyclipping CONFIG) + find_dependency(RapidJSON CONFIG) + find_dependency(Stb MODULE) + find_dependency(utf8cpp CONFIG) + find_dependency(ZLIB) +endif() include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") set(ASSIMP_ROOT_DIR ${PACKAGE_PREFIX_DIR}) diff --git a/code/AssetLib/3MF/D3MFExporter.cpp b/code/AssetLib/3MF/D3MFExporter.cpp index 71e3535..b8e5de3 100644 --- a/code/AssetLib/3MF/D3MFExporter.cpp +++ b/code/AssetLib/3MF/D3MFExporter.cpp @@ -56,7 +56,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifdef ASSIMP_USE_HUNTER #include #else -#include +#include #endif namespace Assimp { diff --git a/code/AssetLib/Blender/BlenderTessellator.h b/code/AssetLib/Blender/BlenderTessellator.h index d6487cb..b56e271 100644 --- a/code/AssetLib/Blender/BlenderTessellator.h +++ b/code/AssetLib/Blender/BlenderTessellator.h @@ -143,7 +143,7 @@ namespace Assimp #if ASSIMP_BLEND_WITH_POLY_2_TRI -#include "contrib/poly2tri/poly2tri/poly2tri.h" +#include namespace Assimp { diff --git a/code/AssetLib/IFC/IFCGeometry.cpp b/code/AssetLib/IFC/IFCGeometry.cpp index d3666d5..795f366 100644 --- a/code/AssetLib/IFC/IFCGeometry.cpp +++ b/code/AssetLib/IFC/IFCGeometry.cpp @@ -45,8 +45,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "IFCUtil.h" #include "Common/PolyTools.h" #include "PostProcessing/ProcessHelper.h" -#include "contrib/poly2tri/poly2tri/poly2tri.h" -#include "contrib/clipper/clipper.hpp" +#include +#include #include #include diff --git a/code/AssetLib/IFC/IFCOpenings.cpp b/code/AssetLib/IFC/IFCOpenings.cpp index 068ef40..be116f8 100644 --- a/code/AssetLib/IFC/IFCOpenings.cpp +++ b/code/AssetLib/IFC/IFCOpenings.cpp @@ -47,8 +47,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "IFCUtil.h" #include "Common/PolyTools.h" #include "PostProcessing/ProcessHelper.h" -#include "contrib/poly2tri/poly2tri/poly2tri.h" -#include "contrib/clipper/clipper.hpp" +#include +#include #include #include diff --git a/code/AssetLib/MMD/MMDPmxParser.cpp b/code/AssetLib/MMD/MMDPmxParser.cpp index 73d6b6c..69529ba 100644 --- a/code/AssetLib/MMD/MMDPmxParser.cpp +++ b/code/AssetLib/MMD/MMDPmxParser.cpp @@ -41,7 +41,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include "MMDPmxParser.h" #include -#include "utf8.h" +#include "utf8cpp/utf8.h" #include namespace pmx diff --git a/code/AssetLib/SIB/SIBImporter.cpp b/code/AssetLib/SIB/SIBImporter.cpp index 8e05846..9860c5f 100644 --- a/code/AssetLib/SIB/SIBImporter.cpp +++ b/code/AssetLib/SIB/SIBImporter.cpp @@ -56,7 +56,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include -#include "utf8.h" +#include "utf8cpp/utf8.h" #include #include #include diff --git a/code/AssetLib/STEPParser/STEPFileEncoding.cpp b/code/AssetLib/STEPParser/STEPFileEncoding.cpp index 7508e90..281c387 100644 --- a/code/AssetLib/STEPParser/STEPFileEncoding.cpp +++ b/code/AssetLib/STEPParser/STEPFileEncoding.cpp @@ -44,7 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "STEPFileEncoding.h" #include -#include "utf8.h" +#include "utf8cpp/utf8.h" #include diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index de2f650..e605bf8 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -1113,8 +1113,7 @@ ELSE() # IF (ASSIMP_BUILD_USD_IMPORTER) ENDIF() # IF (ASSIMP_BUILD_USD_IMPORTER) # pugixml -IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(pugixml) +IF(1) find_package(pugixml CONFIG REQUIRED) ELSEIF(NOT TARGET pugixml::pugixml) SET( Pugixml_SRCS @@ -1127,30 +1126,27 @@ ELSEIF(NOT TARGET pugixml::pugixml) ENDIF() # utf8 -IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(utf8) +IF(1) find_package(utf8cpp CONFIG REQUIRED) ELSE() INCLUDE_DIRECTORIES("../contrib/utf8cpp/source") ENDIF() # polyclipping -#IF(ASSIMP_HUNTER_ENABLED) -# hunter_add_package(polyclipping) -# find_package(polyclipping CONFIG REQUIRED) -#ELSE() +if(1) + find_package(polyclipping CONFIG REQUIRED) +ELSE() SET( Clipper_SRCS ../contrib/clipper/clipper.hpp ../contrib/clipper/clipper.cpp ) SOURCE_GROUP( Contrib\\Clipper FILES ${Clipper_SRCS}) -#ENDIF() +ENDIF() # poly2tri -#IF(ASSIMP_HUNTER_ENABLED) -# hunter_add_package(poly2tri) -# find_package(poly2tri CONFIG REQUIRED) -#ELSE() +IF(1) + find_package(poly2tri CONFIG REQUIRED) +ELSE() SET( Poly2Tri_SRCS ../contrib/poly2tri/poly2tri/common/shapes.cc ../contrib/poly2tri/poly2tri/common/shapes.h @@ -1165,11 +1161,10 @@ ENDIF() ../contrib/poly2tri/poly2tri/sweep/sweep_context.h ) SOURCE_GROUP( Contrib\\Poly2Tri FILES ${Poly2Tri_SRCS}) -#ENDIF() +ENDIF() # minizip/unzip -IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(minizip) +IF(1) find_package(minizip CONFIG REQUIRED) ELSE() SET( unzip_SRCS @@ -1185,8 +1180,7 @@ ENDIF() # zip (https://github.com/kuba--/zip) separate_arguments(ASSIMP_EXPORTERS_LIST UNIX_COMMAND ${ASSIMP_EXPORTERS_ENABLED}) IF(3MF IN_LIST ASSIMP_EXPORTERS_LIST) - IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(zip) + IF(1) find_package(zip CONFIG REQUIRED) ELSE() SET( ziplib_SRCS @@ -1207,7 +1201,7 @@ IF(3MF IN_LIST ASSIMP_EXPORTERS_LIST) ENDIF() # openddlparser -IF(ASSIMP_HUNTER_ENABLED) +IF(0) hunter_add_package(openddlparser) find_package(openddlparser CONFIG REQUIRED) ELSE() @@ -1230,7 +1224,7 @@ ELSE() ENDIF() # Open3DGC -IF(ASSIMP_HUNTER_ENABLED) +IF(0) # Nothing to do, not available in Hunter yet. ELSE() SET ( open3dgc_SRCS @@ -1265,6 +1259,7 @@ ELSE() ../contrib/Open3DGC/o3dgcVector.inl ) SOURCE_GROUP( Contrib\\open3dgc FILES ${open3dgc_SRCS}) + INCLUDE_DIRECTORIES("../contrib") ENDIF() # Check dependencies for glTF importer with Open3DGC-compression. @@ -1273,7 +1268,7 @@ ENDIF() IF (NOT WIN32) FIND_PACKAGE(RT QUIET) ENDIF () -IF (NOT ASSIMP_HUNTER_ENABLED AND (RT_FOUND OR WIN32)) +IF (1) SET( ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC 1 ) ADD_DEFINITIONS( -DASSIMP_IMPORTER_GLTF_USE_OPEN3DGC=1 ) ELSE () @@ -1283,9 +1278,9 @@ ELSE () ENDIF () # RapidJSON -IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(RapidJSON) +IF(1) find_package(RapidJSON CONFIG REQUIRED) + ADD_DEFINITIONS( -DRAPIDJSON_HAS_STDSTRING=1) ELSE() INCLUDE_DIRECTORIES("../contrib/rapidjson/include") ADD_DEFINITIONS( -DRAPIDJSON_HAS_STDSTRING=1) @@ -1296,9 +1291,8 @@ ELSE() ENDIF() # stb -IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(stb) - find_package(stb CONFIG REQUIRED) +IF(1) + find_package(Stb REQUIRED) ELSE() SET( stb_SRCS ../contrib/stb/stb_image.h @@ -1315,7 +1309,7 @@ if(MSVC10) endif() endif() -IF(NOT ASSIMP_HUNTER_ENABLED) +IF(0) if (UNZIP_FOUND) SET (unzip_compile_SRCS "") else () @@ -1373,7 +1367,7 @@ SET( assimp_src ) ADD_DEFINITIONS( -DOPENDDLPARSER_BUILD ) -IF(NOT ASSIMP_HUNTER_ENABLED) +IF(1) INCLUDE_DIRECTORIES( ${IRRXML_INCLUDE_DIR} ../contrib/openddlparser/include @@ -1476,21 +1470,24 @@ TARGET_INCLUDE_DIRECTORIES ( assimp PUBLIC $ $ $ + PRIVATE + ${Stb_INCLUDE_DIR} ) -IF(ASSIMP_HUNTER_ENABLED) +IF(1) TARGET_LINK_LIBRARIES(assimp - PUBLIC - openddlparser::openddl_parser - minizip::minizip - ZLIB::zlib - RapidJSON::rapidjson - utf8cpp + PRIVATE + polyclipping::polyclipping + ${OPENDDL_PARSER_LIBRARIES} + poly2tri::poly2tri + unofficial::minizip::minizip + ZLIB::ZLIB + rapidjson + utf8cpp::utf8cpp pugixml - stb::stb ) if(TARGET zip::zip) - target_link_libraries(assimp PUBLIC zip::zip) + target_link_libraries(assimp PRIVATE zip::zip) endif() if (ASSIMP_BUILD_DRACO) @@ -1513,9 +1510,9 @@ if(ASSIMP_ANDROID_JNIIOSYSTEM) endif() IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) - TARGET_LINK_LIBRARIES(assimp optimized ${C4D_RELEASE_LIBRARIES}) - TARGET_LINK_LIBRARIES(assimp debug ${C4D_DEBUG_LIBRARIES}) - TARGET_LINK_LIBRARIES(assimp ${C4D_EXTRA_LIBRARIES}) + TARGET_LINK_LIBRARIES(assimp PRIVATE optimized ${C4D_RELEASE_LIBRARIES}) + TARGET_LINK_LIBRARIES(assimp PRIVATE debug ${C4D_DEBUG_LIBRARIES}) + TARGET_LINK_LIBRARIES(assimp PRIVATE ${C4D_EXTRA_LIBRARIES}) ENDIF () if( MSVC ) @@ -1556,13 +1553,13 @@ if (MINGW) ARCHIVE_OUTPUT_NAME assimp ) if (NOT BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES ( assimp -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lwinpthread ) # winpthread is for libminizip. + TARGET_LINK_LIBRARIES ( assimp PRIVATE -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lwinpthread ) # winpthread is for libminizip. endif () endif() if (${CMAKE_SYSTEM_NAME} MATCHES "WindowsStore") target_compile_definitions(assimp PUBLIC WindowsStore) - TARGET_LINK_LIBRARIES(assimp advapi32) + TARGET_LINK_LIBRARIES(assimp PRIVATE advapi32) endif() SET_TARGET_PROPERTIES( assimp PROPERTIES @@ -1592,14 +1589,14 @@ ENDIF() # Build against external unzip, or add ../contrib/unzip so # assimp can #include "unzip.h" -IF(NOT ASSIMP_HUNTER_ENABLED) +IF(0) if (UNZIP_FOUND) INCLUDE_DIRECTORIES(${UNZIP_INCLUDE_DIRS}) # TODO if cmake required version has been updated to >3.12.0, collapse this to the second case only if(${CMAKE_VERSION} VERSION_LESS "3.12.0") - TARGET_LINK_LIBRARIES(assimp ${UNZIP_LIBRARIES}) + TARGET_LINK_LIBRARIES(assimp PRIVATE ${UNZIP_LIBRARIES}) else() - TARGET_LINK_LIBRARIES(assimp ${UNZIP_LINK_LIBRARIES}) + TARGET_LINK_LIBRARIES(assimp PRIVATE ${UNZIP_LINK_LIBRARIES}) endif() else () INCLUDE_DIRECTORIES("../") @@ -1608,7 +1605,7 @@ ENDIF() # Add RT-extension library for glTF importer with Open3DGC-compression. IF (RT_FOUND AND ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC) - TARGET_LINK_LIBRARIES(assimp rt) + TARGET_LINK_LIBRARIES(assimp PRIVATE rt) ENDIF () IF(ASSIMP_INSTALL) diff --git a/code/Common/BaseImporter.cpp b/code/Common/BaseImporter.cpp index 1894ad8..e010080 100644 --- a/code/Common/BaseImporter.cpp +++ b/code/Common/BaseImporter.cpp @@ -354,7 +354,7 @@ std::string BaseImporter::GetExtension(const std::string &pFile) { return false; } -#include "utf8.h" +#include "utf8cpp/utf8.h" // ------------------------------------------------------------------------------------------------ // Convert to UTF8 data diff --git a/code/Common/StbCommon.h b/code/Common/StbCommon.h index 6cec216..8c129f4 100644 --- a/code/Common/StbCommon.h +++ b/code/Common/StbCommon.h @@ -53,7 +53,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #pragma clang diagnostic ignored "-Wunused-function" #endif -#ifndef STB_USE_HUNTER +#if 0 /* Use prefixed names for the symbols from stb_image as it is a very commonly embedded library. Including vanilla stb_image symbols causes duplicate symbol problems if assimp is linked statically together with another library or executable that also embeds stb_image. @@ -113,7 +113,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define stbi_zlib_decode_noheader_malloc assimp_stbi_zlib_decode_noheader_malloc #endif -#include "stb/stb_image.h" +#include "stb_image.h" #if _MSC_VER #pragma warning(pop) diff --git a/code/Common/ZipArchiveIOSystem.cpp b/code/Common/ZipArchiveIOSystem.cpp index e2234e2..6258717 100644 --- a/code/Common/ZipArchiveIOSystem.cpp +++ b/code/Common/ZipArchiveIOSystem.cpp @@ -54,7 +54,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifdef ASSIMP_USE_HUNTER # include #else -# include +# include #endif namespace Assimp {