Now the configs follows the standard cmake-package code: see https://cmake.org/cmake/help/v3.12/manual/cmake-packages.7.html
Downstreamer no longer have to manually specify target_include_directories with ${ASSIMP_INCLUDE_DIRS}, target_link_libraries with ${ASSIMP_LIBRARY_DIRS} and so on.
Downstreamer can now use:
find_package(assimp CONFIG REQUIRED)
target_link_libraries(AWESOME_APP PUBLIC assimp::assimp)
and everything should work.
Added assimpTargets.cmake.in
Added assimpTargets-debug.cmake.in
Added assimpTargets-release.cmake.in
Modified CMakeLists.txt
Modified code/CMakeLists.txt - added ALIAS assimp::assimp
Tested on Ubuntu 18.04 and Windows 10
With `TARGET_INCLUDE_DIRECTORIES` the `assimp` target can directly used in another CMake project, e.g. assimp can be used in a submodule with an `add_subdirectory()` call.
-ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT will be respected by the macro
--using local variable ASSIMP_IMPORTER_ENABLED to include or exclude
--an importer
-Fixes individual importer ex: set(ASSIMP_BUILD_FBX_IMPORTER OFF)
-ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT is cached
--if assimp is a child cmake project, need to force cache
--from parent project
--ex: set(ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT CACHE INTERNAL FALSE)
The CMake variable "MSVC" and the related versioned variables indicate that the
Visual Studio compiler is used but when using that compiler and the "NMake
Makefiles JOM" build generator the files it tried to install weren't in the
expected Debug folder.
Several distributions usually decide for shared external libraries
instead of an usual embedded, for security reasons, duplicatiion issues.
This change enable the possibility to set SYSTEM_IRRXML=ON for detect
and build against a system installed irrxml.
By default, the internal copy is compiled.
Changes on build:
- Added a FindIrrXML cmake module.
- Moved the source recipe for proper CMakeLists inside contrib directory
- Includes aren't path based anymore, using the provided INCLUDE_DIR
- Compiler option are grouped in a singled entry on main CMakeLists
Note: Current internal assimp irrXML is older than upstream irrlicht 1.8.4.
To enable usage of this version, code need to be patched.