123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- # Open Asset Import Library (assimp)
- # ----------------------------------------------------------------------
- # Copyright (c) 2006-2025, assimp team
- #
- # All rights reserved.
- #
- # Redistribution and use of this software in source and binary forms,
- # with or without modification, are permitted provided that the
- # following conditions are met:
- #
- # * Redistributions of source code must retain the above
- # copyright notice, this list of conditions and the
- # following disclaimer.
- #
- # * Redistributions in binary form must reproduce the above
- # copyright notice, this list of conditions and the
- # following disclaimer in the documentation and/or other
- # materials provided with the distribution.
- #
- # * Neither the name of the assimp team, nor the names of its
- # contributors may be used to endorse or promote products
- # derived from this software without specific prior
- # written permission of the assimp team.
- #
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- #
- #----------------------------------------------------------------------
- cmake_minimum_required( VERSION 3.10 )
- INCLUDE_DIRECTORIES(
- ${Assimp_SOURCE_DIR}/test/unit
- ${Assimp_SOURCE_DIR}/include
- ${Assimp_SOURCE_DIR}/code
- )
- if(NOT ASSIMP_HUNTER_ENABLED)
- INCLUDE_DIRECTORIES(
- ${Assimp_SOURCE_DIR}/contrib/googletest/googletest/include
- ${Assimp_SOURCE_DIR}/contrib/googletest/googletest/
- ${Assimp_SOURCE_DIR}/contrib/pugixml/src
- )
- endif()
- if (MSVC)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING")
- endif()
- # Add the temporary output directories to the library path to make sure the
- # Assimp library can be found, even if it is not installed system-wide yet.
- LINK_DIRECTORIES( ${Assimp_BINARY_DIR} ${AssetImporter_BINARY_DIR}/lib )
- SET(TOOLS
- unit/Tools/TestTools.h
- )
- SET( COMMON
- unit/utSimd.cpp
- unit/utIOSystem.cpp
- unit/utIOStreamBuffer.cpp
- unit/utIssues.cpp
- unit/utAnim.cpp
- unit/AssimpAPITest.cpp
- unit/AssimpAPITest_aiMatrix3x3.cpp
- unit/AssimpAPITest_aiMatrix4x4.cpp
- unit/AssimpAPITest_aiQuaternion.cpp
- unit/AssimpAPITest_aiVector2D.cpp
- unit/AssimpAPITest_aiVector3D.cpp
- unit/MathTest.cpp
- unit/MathTest.h
- unit/RandomNumberGeneration.h
- unit/utBatchLoader.cpp
- unit/utDefaultIOStream.cpp
- unit/utFastAtof.cpp
- unit/utMetadata.cpp
- unit/SceneDiffer.h
- unit/SceneDiffer.cpp
- unit/UTLogStream.h
- unit/AbstractImportExportBase.cpp
- unit/TestIOSystem.h
- unit/TestModelFactory.h
- unit/utTypes.cpp
- unit/utVersion.cpp
- unit/Common/utParsingUtils.cpp
- unit/utProfiler.cpp
- unit/utSharedPPData.cpp
- unit/utStringUtils.cpp
- unit/Common/utMaybe.cpp
- unit/Common/utMesh.cpp
- unit/Common/utStandardShapes.cpp
- unit/Common/uiScene.cpp
- unit/Common/utLineSplitter.cpp
- unit/Common/utSpatialSort.cpp
- unit/Common/utAssertHandler.cpp
- unit/Common/utXmlParser.cpp
- unit/Common/utBase64.cpp
- unit/Common/utHash.cpp
- unit/Common/utBaseProcess.cpp
- unit/Common/utLogger.cpp
- )
- SET(Geometry
- unit/Geometry/utGeometryUtils.cpp
- )
- SET( IMPORTERS
- unit/ImportExport/Assxml/utAssxmlImportExport.cpp
- unit/utLWSImportExport.cpp
- unit/utLWOImportExport.cpp
- unit/utSMDImportExport.cpp
- unit/utglTFImportExport.cpp
- unit/utglTF2ImportExport.cpp
- unit/utHMPImportExport.cpp
- unit/utIFCImportExport.cpp
- unit/utFBXImporterExporter.cpp
- unit/utImporter.cpp
- unit/ImportExport/utExporter.cpp
- unit/ut3DImportExport.cpp
- unit/ut3DSImportExport.cpp
- unit/utACImportExport.cpp
- unit/utAMFImportExport.cpp
- unit/utASEImportExport.cpp
- unit/utD3MFImportExport.cpp
- unit/utQ3DImportExport.cpp
- unit/utSTLImportExport.cpp
- unit/utXImporterExporter.cpp
- unit/utX3DImportExport.cpp
- unit/utDXFImporterExporter.cpp
- unit/utPMXImporter.cpp
- unit/utPLYImportExport.cpp
- unit/utObjImportExport.cpp
- unit/utObjTools.cpp
- unit/utOpenGEXImportExport.cpp
- unit/utSIBImporter.cpp
- unit/utBlenderIntermediate.cpp
- unit/utBlendImportAreaLight.cpp
- unit/utBlenderImportExport.cpp
- unit/utBlendImportMaterials.cpp
- unit/utBlenderWork.cpp
- unit/utBVHImportExport.cpp
- unit/utColladaExport.cpp
- unit/utColladaImportExport.cpp
- unit/utCSMImportExport.cpp
- unit/utB3DImportExport.cpp
- #unit/utM3DImportExport.cpp
- unit/utMDCImportExport.cpp
- unit/utAssbinImportExport.cpp
- unit/ImportExport/utAssjsonImportExport.cpp
- unit/ImportExport/utCOBImportExport.cpp
- unit/ImportExport/utOgreImportExport.cpp
- unit/ImportExport/utQ3BSPFileImportExport.cpp
- unit/ImportExport/utOFFImportExport.cpp
- unit/ImportExport/utNFFImportExport.cpp
- unit/ImportExport/utXGLImportExport.cpp
- unit/ImportExport/utMD2Importer.cpp
- #unit/ImportExport/utMD3Importer.cpp
- unit/ImportExport/utMD5Importer.cpp
- unit/ImportExport/utMDLImporter.cpp
- unit/ImportExport/MDL/MDLHL1TestFiles.h
- unit/ImportExport/MDL/utMDLImporter_HL1_ImportSettings.cpp
- unit/ImportExport/MDL/utMDLImporter_HL1_Materials.cpp
- unit/ImportExport/MDL/utMDLImporter_HL1_Nodes.cpp
- unit/ImportExport/RAW/utRAWImportExport.cpp
- unit/ImportExport/Terragen/utTerragenImportExport.cpp
- unit/ImportExport/Pbrt/utPbrtImportExport.cpp
- )
- if(ASSIMP_BUILD_USD_IMPORTER)
- list( APPEND IMPORTERS
- unit/utUSDImport.cpp
- )
- endif()
- SET( MATERIAL
- unit/utMaterialSystem.cpp
- )
- SET( MATH
- unit/utMatrix3x3.cpp
- unit/utMatrix4x4.cpp
- unit/utVector3.cpp
- )
- SET( POST_PROCESSES
- unit/utImproveCacheLocality.cpp
- unit/utFixInfacingNormals.cpp
- unit/utGenNormals.cpp
- unit/utTriangulate.cpp
- unit/utTextureTransform.cpp
- unit/utRemoveRedundantMaterials.cpp
- unit/utRemoveVCProcess.cpp
- unit/utScaleProcess.cpp
- unit/utArmaturePopulate.cpp
- unit/utJoinVertices.cpp
- unit/utRemoveComments.cpp
- unit/utRemoveComponent.cpp
- unit/utVertexTriangleAdjacency.cpp
- unit/utJoinVertices.cpp
- unit/utSplitLargeMeshes.cpp
- unit/utFindDegenerates.cpp
- unit/utFindInvalidData.cpp
- unit/utLimitBoneWeights.cpp
- unit/utPretransformVertices.cpp
- unit/utScenePreprocessor.cpp
- unit/utTargetAnimation.cpp
- unit/utSortByPType.cpp
- unit/utSceneCombiner.cpp
- unit/utGenBoundingBoxesProcess.cpp
- )
- SOURCE_GROUP( UnitTests\\Compiler FILES unit/CCompilerTest.c )
- SOURCE_GROUP( UnitTests\\Common FILES ${COMMON} )
- SOURCE_GROUP( UnitTests\\GeometryTools FILES ${Geometry} )
- SOURCE_GROUP( UnitTests\\ImportExport FILES ${IMPORTERS} )
- SOURCE_GROUP( UnitTests\\Material FILES ${MATERIAL} )
- SOURCE_GROUP( UnitTests\\Math FILES ${MATH} )
- SOURCE_GROUP( UnitTests\\Tools FILES ${TOOLS} )
- SOURCE_GROUP( UnitTests\\PostProcess FILES ${POST_PROCESSES})
- add_executable( unit
- unit/CCompilerTest.c
- unit/Main.cpp
- ../code/Common/Version.cpp
- ../code/Common/Base64.cpp
- ${COMMON}
- ${Geometry}
- ${IMPORTERS}
- ${MATERIAL}
- ${MATH}
- ${POST_PROCESSES}
- ${TOOLS}
- )
- if(ASSIMP_HUNTER_ENABLED)
- hunter_add_package(GTest)
- find_package(GTest CONFIG REQUIRED)
- target_link_libraries(unit GTest::gtest_main GTest::gmock)
- else()
- target_sources(unit PUBLIC ${Assimp_SOURCE_DIR}/contrib/googletest/googletest/src/gtest-all.cc)
- endif()
- # RapidJSON
- IF(ASSIMP_HUNTER_ENABLED)
- hunter_add_package(RapidJSON)
- find_package(RapidJSON CONFIG REQUIRED)
- ELSE()
- INCLUDE_DIRECTORIES("../contrib/rapidjson/include")
- ADD_DEFINITIONS( -DRAPIDJSON_HAS_STDSTRING=1)
- option( ASSIMP_RAPIDJSON_NO_MEMBER_ITERATOR "Suppress rapidjson warning on MSVC (NOTE: breaks android build)" ON )
- if(ASSIMP_RAPIDJSON_NO_MEMBER_ITERATOR)
- ADD_DEFINITIONS( -DRAPIDJSON_NOMEMBERITERATORCLASS )
- endif()
- ENDIF()
- IF (ASSIMP_BUILD_DRACO)
- ADD_DEFINITIONS( -DASSIMP_ENABLE_DRACO )
- ENDIF()
- TARGET_USE_COMMON_OUTPUT_DIRECTORY(unit)
- add_definitions(-DASSIMP_TEST_MODELS_DIR="${CMAKE_CURRENT_LIST_DIR}/models")
- add_definitions(-DASSIMP_TEST_MODELS_NONBSD_DIR="${CMAKE_CURRENT_LIST_DIR}/models-nonbsd")
- SET_PROPERTY( TARGET assimp PROPERTY DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX} )
- IF( WIN32 )
- SET( platform_libs )
- ELSEIF(ANDROID)
- SET( platform_libs )
- ELSE()
- SET( platform_libs pthread )
- ENDIF()
- IF(MSVC)
- add_definitions(-D_CRT_SECURE_NO_WARNINGS)
- ENDIF()
- IF (ASSIMP_WARNINGS_AS_ERRORS)
- IF (MSVC)
- TARGET_COMPILE_OPTIONS(unit PRIVATE /W4 /WX)
- ELSE()
- TARGET_COMPILE_OPTIONS(unit PRIVATE -Wall -Werror)
- ENDIF()
- ENDIF()
- target_link_libraries( unit assimp ${platform_libs} )
- add_subdirectory(headercheck)
- add_test( unittests unit )
|