diff --git a/Build.md b/Build.md index b4d1bdad0..d6abe7b67 100644 --- a/Build.md +++ b/Build.md @@ -84,23 +84,28 @@ Besides the toolchain, compilation should be the same as for Linux / Unix. ### CMake build options The cmake-build-environment provides options to configure the build. The following options can be used: -- **BUILD_SHARED_LIBS ( default ON )**: Generation of shared libs ( dll for windows, so for Linux ). Set this to OFF to get a static lib. -- **BUILD_FRAMEWORK ( default OFF, MacOnly)**: Build package as Mac OS X Framework bundle -- **ASSIMP_DOUBLE_PRECISION( default OFF )**: All data will be stored as double values. -- **ASSIMP_OPT_BUILD_PACKAGES ( default OFF)**: Set to ON to generate CPack configuration files and packaging targets -- **ASSIMP_ANDROID_JNIIOSYSTEM ( default OFF )**: Android JNI IOSystem support is active -- **ASSIMP_NO_EXPORT ( default OFF )**: Disable Assimp's export functionality -- **ASSIMP_BUILD_ZLIB ( default OFF )**: Build your own zlib -- **ASSIMP_BUILD_ASSIMP_TOOLS ( default ON )**: If the supplementary tools for Assimp are built in addition to the library. -- **ASSIMP_BUILD_SAMPLES ( default OFF )**: If the official samples are built as well (needs Glut). -- **ASSIMP_BUILD_TESTS ( default ON )**: If the test suite for Assimp is built in addition to the library. -- **ASSIMP_COVERALLS ( default OFF )**: Enable this to measure test coverage. -- **ASSIMP_ERROR_MAX( default OFF)**: Enable all warnings. -- **ASSIMP_WERROR( default OFF )**: Treat warnings as errors. -- **ASSIMP_ASAN ( default OFF )**: Enable AddressSanitizer. -- **ASSIMP_UBSAN ( default OFF )**: Enable Undefined Behavior sanitizer. -- **SYSTEM_IRRXML ( default OFF )**: Use system installed Irrlicht/IrrXML library. -- **BUILD_DOCS ( default OFF )**: Build documentation using Doxygen. -- **INJECT_DEBUG_POSTFIX( default ON )**: Inject debug postfix in .a/.so lib names -- **IGNORE_GIT_HASH ( default OFF )**: Don't call git to get the hash. -- **ASSIMP_INSTALL_PDB ( default ON )**: Install MSVC debug files. +- **ASSIMP_HUNTER_ENABLED (default OFF)**: Enable Hunter package manager support. +- **BUILD_SHARED_LIBS (default ON)**: Generation of shared libs (dll for windows, so for Linux). Set this to OFF to get a static lib. +- **ASSIMP_BUILD_FRAMEWORK (default OFF, MacOnly)**: Build package as Mac OS X Framework bundle. +- **ASSIMP_DOUBLE_PRECISION (default OFF)**: All data will be stored as double values. +- **ASSIMP_OPT_BUILD_PACKAGES (default OFF)**: Set to ON to generate CPack configuration files and packaging targets. +- **ASSIMP_ANDROID_JNIIOSYSTEM (default OFF)**: Android JNI IOSystem support is active. +- **ASSIMP_NO_EXPORT (default OFF)**: Disable Assimp's export functionality. +- **ASSIMP_BUILD_ZLIB (default OFF)**: Build our own zlib. +- **ASSIMP_BUILD_ALL_EXPORTERS_BY_DEFAULT (default ON)**: Build Assimp with all exporter senabled. +- **ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT (default ON)**: Build Assimp with all importer senabled. +- **ASSIMP_BUILD_ASSIMP_TOOLS (default ON)**: If the supplementary tools for Assimp are built in addition to the library. +- **ASSIMP_BUILD_SAMPLES (default OFF)**: If the official samples are built as well (needs Glut). +- **ASSIMP_BUILD_TESTS (default ON)**: If the test suite for Assimp is built in addition to the library. +- **ASSIMP_COVERALLS (default OFF)**: Enable this to measure test coverage. +- **ASSIMP_INSTALL (default ON)**: Install Assimp library. Disable this if you want to use Assimp as a submodule. +- **ASSIMP_WARNINGS_AS_ERRORS (default ON)**: Treat all warnings as errors. +- **ASSIMP_ASAN (default OFF)**: Enable AddressSanitizer. +- **ASSIMP_UBSAN (default OFF)**: Enable Undefined Behavior sanitizer. +- **ASSIMP_BUILD_DOCS (default OFF)**: Build documentation using Doxygen. OBSOLETE, see https://github.com/assimp/assimp-docs +- **ASSIMP_INJECT_DEBUG_POSTFIX (default ON)**: Inject debug postfix in .a/.so/.lib/.dll lib names +- **ASSIMP_IGNORE_GIT_HASH (default OFF)**: Don't call git to get the hash. +- **ASSIMP_INSTALL_PDB (default ON)**: Install MSVC debug files. +- **USE_STATIC_CRT (default OFF)**: Link against the static MSVC runtime libraries. +- **ASSIMP_BUILD_DRACO (default OFF)**: Build Draco libraries. Primarily for glTF. +- **ASSIMP_BUILD_ASSIMP_VIEW (default ON, if DirectX found, OFF otherwise)**: Build Assimp view tool (requires DirectX). diff --git a/CMakeLists.txt b/CMakeLists.txt index 072803fda..2aa66421c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,9 +108,9 @@ OPTION( ASSIMP_INSTALL "Disable this if you want to use assimp as a submodule." ON ) -OPTION ( ASSIMP_ERROR_MAX - "Enable all warnings." - OFF +OPTION ( ASSIMP_WARNINGS_AS_ERRORS + "Treat all warnings as errors." + ON ) OPTION ( ASSIMP_ASAN "Enable AddressSanitizer." @@ -324,16 +324,6 @@ IF (ASSIMP_COVERALLS) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage") ENDIF() -IF (ASSIMP_ERROR_MAX) - MESSAGE(STATUS "Turning on all warnings") - IF (MSVC) - ADD_COMPILE_OPTIONS(/W4) # NB: there is a /Wall option, pedantic mode - ELSE() - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") - ENDIF() -ENDIF() - IF (ASSIMP_ASAN) MESSAGE(STATUS "AddressSanitizer enabled") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") @@ -694,6 +684,7 @@ ENDIF() # Main assimp code ADD_SUBDIRECTORY( code/ ) + IF ( ASSIMP_BUILD_ASSIMP_TOOLS ) # The viewer for windows only IF (WIN32) diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 16b5ece4d..d2488d6f2 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -1179,11 +1179,13 @@ ADD_LIBRARY(assimp::assimp ALIAS assimp) TARGET_USE_COMMON_OUTPUT_DIRECTORY(assimp) -# enable warnings as errors ######################################## -IF (MSVC) - TARGET_COMPILE_OPTIONS(assimp PRIVATE /WX) -ELSE() - TARGET_COMPILE_OPTIONS(assimp PRIVATE -Werror) +IF (ASSIMP_WARNINGS_AS_ERRORS) + MESSAGE(STATUS "Treating all warnings as errors (for assimp library only)") + IF (MSVC) + TARGET_COMPILE_OPTIONS(assimp PRIVATE /W4 /WX) + ELSE() + TARGET_COMPILE_OPTIONS(assimp PRIVATE -Wall -Werror) + ENDIF() ENDIF() # adds C_FLAGS required to compile zip.c on old GCC 4.x compiler