Emulate the CMAKE_INSTALL_FULL_* variables on non-Unix systems and
disable redefining FHS-mandated install locations via user-editable
ASSIMP_*_INSTALL_DIR variables. Instead, if it REALLY proves necessary,
Unix users can edit the advanced, canonical CMAKE_INSTALL_* variables.
When libraries are included as submodules in large projects, having an option with a generic name like "BUILD_DOCS" is not very helpful. (e.g. one project I work on includes many libraries as submodules)
It can also clash with options from other libraries which can break things.
- Fixed condition preventing ASSIMP_BUILD_ASSIMP_VIEW showing up on first time
- Set ASSIMP_BUILD_ASSIMP_VIEW to off by default.
- Removed unnecessary reference to DirectX 9 library.
- Removed OpenGL/Glut references in SimpleTexturedDirectX11 CMakeFile
- Moved UTFConverter from SimpleTexturedOpenGL to its own file to be able to reuse it.
- Added compile definition SHADER_PATH to allow to locate the shader files in CMakeFile
- Fixed compile warnings
- Made global pointers null to help prevent dangling references.
- Added missing members initialization in class constructors.
- Removed references to missing model "Models/mymodel.fbx"
- Fixed error when extracting model file directory
- Added missing device context assignment in ModelLoader Load method
- Fixed memory leak caused by variable 'ourModel' not deleted.
- Removed call to dev->Release() in ModelLoader.cpp
- Adjusted Release() calls in reverse order when cleaning up D3D
- Made Throwanerror implementation throw an error instead of displaying a message box
- Fixed leaking D3D resources
- Added a pointer to an ID3D11Debug to dump live objects.
The following changes were tested against building with a master copy.
For a more detailed report, please read the followings below:
The flags that were checked were the ones checked by default + the following:
ASSIMP_BUILD_ASSIMP_VIEW
ASSIMP_BUILD_SAMPLES
The list of compilable projects in Visual Studio were the following:
- assimp
- assimp_cmd
- assimp_simpleogl
- assimp_simpletextureddirectx11
- assimp_simpletexturedogl
- assimp_viewer
- INSTALL
- IrrXML
- uninstall
- unit
- UpdateAssimpLibsDebugSymbolsAndDLLs
- ZERO_CHECK
- zlib
- zlibstatic
The solution that was generated with the new changes comprised the same number of projects as the one from the master, unmodified. All projects except UpdateAssimpLibsDebugSymbolsAndDLLs were built without any error. All tests were run.
UpdateAssimpLibsDebugSymbolsAndDLLs could not be built because of the reasons explained in issue #3004.
The following changes were tested with the following projects:
- assimp DLL
- unit tests
- tools/assimp_cmd
- tools/assimp viewer
- samples/SimpleOpenGL
- samples/SimpleTexturedDirectx11
- samples/SimpleTexturedOpenGL
For each program listed above, the results were tested when (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) is true and false.
Also, the "lib" in SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/lib") was changed to "bin" to allow DLLs to be written to executables/launchables programs directory.
Changed copyright end year to 2020 in every reference "Copyright (c) 2006-XXXX, assimp team".
Changed copyright end year to 2020 in every reference "Copyright (c) 2006-XXXX, ASSIMP Development Team".
Changed copyright end year to 2020 in LICENCE.rtf.
Changed copyright end year in CMakeFiles.txt files and any other places referencing Assimp with a copyright start and end year.
Instead of using if(ON)/if(OFF) to determine which of the "hardcoded"
add_library(... SHARED ...) or (... STATIC ...) should be used,
specify a new BUILD_LIB_TYPE variable that is set directly to either
SHARED or STATIC and substituted in the `add_library()` statement
when assimpTargets.cmake.in is configured.
This removes a CMP0012 collision with prior `cmake_policy(VERSION 2.6)`
statement and makes the CMP0012 warning not appear in users' projects.
This problem is mentioned in issue #2685.
When built with BUILD_SHARED_LIBS disabled, the exported CMake
targets are modified to reference the static library location.
This also fixes version detection for VS2017 and beyond within
the target import script.
The AMD64 option causes a build failure on MSVC (#1760) and the ASM builds seem to have problems:
https://github.com/madler/zlib/issues/41#issuecomment-125848075
This change also prevents these from "polluting" the cmake options if assimp is being included as a submodule.
If you have assimp installed already and in the include path (e.g. I have it via homebrew), it can pick up the wrong headers.
This forces the include order so our local ones are found first when building assimp.
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
Revert to default Release build type, but this time only for iOS
Do not attempt to use minizip if you are building for iOS shared dylib
Keep in mind that the "Shared" option only apply to the assimp library and not the other two built libraries
* master:
Fix regression on FBX importer unit test
Check nb of faces and vertices for FBX unit test
Update helper.py
Update helper.py
Solved pyassimp.errors.AssimpError in conda
Hide commit signature information when fetching commit hash
* master: (148 commits)
Update Importer.cpp
[-] Trace print removed.
[F] Get return "like true" when error occured.
[*] qt_assimp_viewer can be built with Qt4 or Qt5. [F] Working in doule precision.
[F] List of importers can be empty.
[F] More correct control by a mouse
[F] React on mouse pressing ig view only.
[F] One alignment for labels. [-] Unused checkbox.
[+] QtCreator temporary file.
[*] Refactoring of "draw axes" procedure. [-] Removed not working part of code for reloading textures. That do nothing, just show checkbox. As Yoda said: "Do. Or do not. There is no try."
[-] Function "GetExtension" always return lowercase string. Using uppercase extension in desc is not needed.
glTF/2.0: Pick scene zero as scene to recursively load if no "scene" property is specified.
Fix GenVertexNormals
[F] Wrong type in equation.
[F] Uninitialized variables.
Fix#1587 : add validation to LWS unit test
Fix#1970: stl with empty solid
Add test for issue 1970: STL with empty solid
Add mesh name to ValidateDataStructure log
Read and write the KHR_materials_unlit glTF/2.0 extension.
...
# Conflicts:
# CMakeLists.txt
# port/iOS/build.sh
There was a typo in the `CMakeLists.txt` where if zlib was not found, it would say "Compiling from souces" instead of "Compiling from sources". Added a 'r' to fix the typo.
Norod: Toolchain files get their SDKVER, DEVROOT and SDKROOT values from build.sh
Norod: Removed deprecated CMAKE_FORCE_
Norod: Build shared libs is now set-able from a flag, so to be more extendable later
Norod: .gitignore updated
1. WordIterator's operator== and operator!= must take const WordIterator& as parameter type.
2. OpenMP doesn't work with new two phase lookups. Need to disable twoPhase.
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.
check on doc/CMakeLists since is already checked on main CMakeLists.
At same time, Doxygen becomes required as no documentation can be built
without it.
Output directory now uses the user defined HTML_OUTPUT instead of
forced dir.
- Added included GNUInstallDirs on same UNIX check, avoiding duplication
of checks
Current documentation lacks a proper directory handling and switch for
Unix like systems.
The option BUILD_DOCS are added as disable by default, even so the
Doxyfile file is generated for a manual build.
Option HTML_OUTPUT are made cached to be properly replaced, as usually
done by some Linux distributions
Microsoft CHM option is enabled if MSVC is detected.