From 4585395a89a4f4ac3eef658e7c1f50fbe0ab10d1 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Sat, 14 Apr 2012 18:19:28 +0100 Subject: [PATCH] Added CMake test build options --- CMakeLists.txt | 81 +++++++++++++++++++++++----- readme.txt | 7 +++ test/external/gli/gtx/loader_tga.inl | 2 +- test/gtx/gtx_string_cast.cpp | 1 - 4 files changed, 76 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ef490505..549b183f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,18 +6,78 @@ enable_testing() add_definitions(-D_CRT_SECURE_NO_WARNINGS) +option(GLM_TEST_ENABLE "GLM test" OFF) +if(NOT GLM_TEST_ENABLE) + message(FATAL_ERROR "GLM is a header only library, no need to build it. Set the option GLM_TEST_ENABLE with ON to build and run the test bench") +endif() + +option(GLM_TEST_ENABLE_CXX_11 "Enable C++ 11" OFF) +if(GLM_TEST_ENABLE_CXX_11) + if(CMAKE_COMPILER_IS_GNUCXX) + add_definitions(-std=c++11) + endif() +elseif(NOT GLM_TEST_ENABLE_CXX_11) + add_definitions(-DGLM_FORCE_CXX98) + + if(CMAKE_COMPILER_IS_GNUCXX) + add_definitions(-std=c++98) + endif() +endif() + +option(GLM_TEST_ENABLE_MS_EXTENSIONS "Enable MS extensions" OFF) +if(GLM_TEST_ENABLE_MS_EXTENSIONS) + if(CMAKE_COMPILER_IS_GNUCXX) + add_definitions(-fms-extensions) + add_definitions(-D_MSC_EXTENSIONS) + endif() +elseif(NOT GLM_TEST_ENABLE_MS_EXTENSIONS) + if(CMAKE_COMPILER_IS_GNUCXX) + add_definitions(-std=c++98) + add_definitions(-pedantic) + endif() + + if(MSVC) + add_definitions(/Za) + endif() +endif() + +option(GLM_TEST_ENABLE_SIMD "Enable SIMD optimizations" OFF) +if(GLM_TEST_ENABLE_SIMD) + if(CMAKE_COMPILER_IS_GNUCXX) + add_definitions(-msse2) + endif() + + if(MSVC) + add_definitions(/arch:SSE2) + endif() +elseif(NOT GLM_TEST_ENABLE_SIMD) + + add_definitions(-DGLM_FORCE_PURE) + + if(CMAKE_COMPILER_IS_GNUCXX) + add_definitions(-mfpmath=387) + endif() +endif() + +option(GLM_TEST_ENABLE_FAST_MATH "Enable fast math optimizations" OFF) +if(GLM_TEST_ENABLE_FAST_MATH) + if(CMAKE_COMPILER_IS_GNUCXX) + add_definitions(-ffast-math) + endif() + + if(MSVC) + add_definitions(/fp:fast) + endif() +elseif(NOT GLM_TEST_ENABLE_FAST_MATH) + if(MSVC) + add_definitions(/fp:precise) + endif() +endif() + if(CMAKE_COMPILER_IS_GNUCXX) - #add_definitions(/Za) - #add_definitions(-pedantic) #add_definitions(-S) #add_definitions(-s) - #add_definitions(-msse2) - #add_definitions(-std=c++0x) - #add_definitions(-fms-extensions) - #add_definitions(-D_MSC_EXTENSIONS) #add_definitions(-m32) - #add_definitions(-mfpmath=387) - #add_definitions(-ffast-math) #add_definitions(-O3) #add_definitions(-fprofile-arcs -ftest-coverage) gcov @@ -32,9 +92,4 @@ add_subdirectory(test) add_subdirectory(bench) add_subdirectory(doc) -option(GLM_TEST_MODE "GLM test" OFF) -if(NOT GLM_TEST_MODE) - message(FATAL_ERROR "GLM is a header only library, no need to build it. Set the option GLM_TEST_MODE with ON to build and run the test bench") -endif() - install(DIRECTORY glm DESTINATION include) diff --git a/readme.txt b/readme.txt index f13ad9b3..62c60b7b 100644 --- a/readme.txt +++ b/readme.txt @@ -36,6 +36,13 @@ GLM is a header only library, there is nothing to build, just include it. More informations in GLM manual: http://glm.g-truc.net/glm-0.9.3.pdf +================================================================================ +GLM 0.9.3.3: 2012-04-XX +-------------------------------------------------------------------------------- +- Improved compatibility with Intel compiler +- Added CMake test build options: SIMD, C++11, fast math and MS land ext +- Fixed SIMD mat4 test on GCC + ================================================================================ GLM 0.9.3.2: 2012-03-15 -------------------------------------------------------------------------------- diff --git a/test/external/gli/gtx/loader_tga.inl b/test/external/gli/gtx/loader_tga.inl index f113ab33..c116bf25 100644 --- a/test/external/gli/gtx/loader_tga.inl +++ b/test/external/gli/gtx/loader_tga.inl @@ -156,4 +156,4 @@ namespace loader_tga } }//namespace loader_tga }//namespace gtx -}//namespace gli \ No newline at end of file +}//namespace gli diff --git a/test/gtx/gtx_string_cast.cpp b/test/gtx/gtx_string_cast.cpp index 5c405246..fc9dbc9e 100644 --- a/test/gtx/gtx_string_cast.cpp +++ b/test/gtx/gtx_string_cast.cpp @@ -7,7 +7,6 @@ // File : test/gtx/string_cast.cpp /////////////////////////////////////////////////////////////////////////////////////////////////// -#define GLM_MESSAGES #include #include #include