libjxl

FORK: libjxl patches used on blog
git clone https://git.neptards.moe/blog/libjxl.git
Log | Files | Refs | Submodules | README | LICENSE

testing.cmake (2643B)


      1 # Copyright (c) the JPEG XL Project
      2 #
      3 # Licensed under the Apache License, Version 2.0 (the "License");
      4 # you may not use this file except in compliance with the License.
      5 # You may obtain a copy of the License at
      6 #
      7 #      http://www.apache.org/licenses/LICENSE-2.0
      8 #
      9 # Unless required by applicable law or agreed to in writing, software
     10 # distributed under the License is distributed on an "AS IS" BASIS,
     11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 # See the License for the specific language governing permissions and
     13 # limitations under the License.
     14 
     15 # Enable tests in third_party/ as well.
     16 enable_testing()
     17 include(CTest)
     18 
     19 set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party")
     20 
     21 if(BUILD_TESTING)
     22 # Add GTest from source and alias it to what the find_package(GTest) workflow
     23 # defines. Omitting googletest/ directory would require it to be available in
     24 # the base system instead, but it would work just fine. This makes packages
     25 # using GTest and calling find_package(GTest) actually work.
     26 if (EXISTS "${SOURCE_DIR}/googletest/CMakeLists.txt" AND
     27     NOT JPEGXL_FORCE_SYSTEM_GTEST)
     28   add_subdirectory(third_party/googletest EXCLUDE_FROM_ALL)
     29   include(GoogleTest)
     30 
     31   set(GTEST_ROOT "${SOURCE_DIR}/googletest/googletest")
     32   set(GTEST_INCLUDE_DIR "$<TARGET_PROPERTY:INCLUDE_DIRECTORIES,gtest>"
     33       CACHE STRING "")
     34   set(GMOCK_INCLUDE_DIR "$<TARGET_PROPERTY:INCLUDE_DIRECTORIES,gmock>")
     35   set(GTEST_LIBRARY "$<TARGET_FILE:gtest>")
     36   set(GTEST_MAIN_LIBRARY "$<TARGET_FILE:gtest_main>")
     37 
     38   set_target_properties(gtest PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
     39   set_target_properties(gmock PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
     40   set_target_properties(gtest_main PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
     41   set_target_properties(gmock_main PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
     42 
     43   # googletest doesn't compile clean with clang-cl (-Wundef)
     44   if (WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
     45     set_target_properties(gtest PROPERTIES COMPILE_FLAGS "-Wno-error")
     46     set_target_properties(gmock PROPERTIES COMPILE_FLAGS "-Wno-error")
     47     set_target_properties(gtest_main PROPERTIES COMPILE_FLAGS "-Wno-error")
     48     set_target_properties(gmock_main PROPERTIES COMPILE_FLAGS "-Wno-error")
     49   endif ()
     50   configure_file("${SOURCE_DIR}/googletest/LICENSE"
     51                  ${PROJECT_BINARY_DIR}/LICENSE.googletest COPYONLY)
     52 else()
     53   if(JPEGXL_DEP_LICENSE_DIR)
     54     configure_file("${JPEGXL_DEP_LICENSE_DIR}/googletest/copyright"
     55                    ${PROJECT_BINARY_DIR}/LICENSE.googletest COPYONLY)
     56   endif()  # JPEGXL_DEP_LICENSE_DIR
     57   find_package(GTest REQUIRED)
     58 endif()
     59 
     60 endif()  # BUILD_TESTING