X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=c54a0a7a9a1137a56f1fda6a91f722a49752c0b6;hb=89bf51c782639d5799d1378d28470d8bef312eca;hp=292b21321feafb467826a96e2df2ad3f7eb37201;hpb=c6ceb84c221b5094f1e8a4c0c247dee3fb5074e8;p=openjpeg.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 292b2132..c54a0a7a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,14 +7,7 @@ # For this purpose you can define a CMake var: OPENJPEG_NAMESPACE to whatever you like # e.g.: # set(OPENJPEG_NAMESPACE "GDCMOPENJPEG") -cmake_minimum_required(VERSION 2.8.5) - -if(COMMAND CMAKE_POLICY) - cmake_policy(SET CMP0003 NEW) - if (NOT (${CMAKE_VERSION} VERSION_LESS 3.0)) - cmake_policy(SET CMP0042 NEW) - endif() -endif() +cmake_minimum_required(VERSION 3.5) if(NOT OPENJPEG_NAMESPACE) set(OPENJPEG_NAMESPACE "OPENJPEG") @@ -126,12 +119,6 @@ if(NOT OPENJPEG_INSTALL_PACKAGE_DIR) endif() if (APPLE) - if (${CMAKE_VERSION} VERSION_LESS 3.0) - # For cmake >= 3.0, we turn on CMP0042 and - # https://cmake.org/cmake/help/v3.0/policy/CMP0042.html mentions - # "Projects wanting @rpath in a target’s install name may remove any setting of the INSTALL_NAME_DIR and CMAKE_INSTALL_NAME_DIR variables" - list(APPEND OPENJPEG_LIBRARY_PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}") - endif() option(OPJ_USE_DSYMUTIL "Call dsymutil on binaries after build." OFF) endif() @@ -175,7 +162,7 @@ if(CMAKE_COMPILER_IS_GNUCC) # set(CMAKE_C_FLAGS "-Wall -std=c99 ${CMAKE_C_FLAGS}") # FIXME: this setting prevented us from setting a coverage build. # Do not use ffast-math for all build, it would produce incorrect results, only set for release: set(OPENJPEG_LIBRARY_COMPILE_OPTIONS ${OPENJPEG_LIBRARY_COMPILE_OPTIONS} "$<$:-ffast-math>") - set(OPENJP2_COMPILE_OPTIONS ${OPENJP2_COMPILE_OPTIONS} "$<$:-ffast-math>" -Wall -Wextra -Wconversion -Wunused-parameter -Wdeclaration-after-statement -Werror=declaration-after-statement) + set(OPENJP2_COMPILE_OPTIONS ${OPENJP2_COMPILE_OPTIONS} "$<$:-ffast-math>" -Wall -Wextra -Wconversion -Wunused-parameter -Wdeclaration-after-statement -Werror=declaration-after-statement -Wstrict-prototypes -Werror=strict-prototypes -Wmissing-prototypes -Werror=missing-prototypes) endif() #----------------------------------------------------------------------------- @@ -184,20 +171,18 @@ endif() # Check if some include files are provided by the system include(EnsureFileInclude) # These files are mandatory -ensure_file_include("string.h" HAVE_STRING_H YES) -ensure_file_include("memory.h" HAVE_MEMORY_H YES) -ensure_file_include("stdlib.h" HAVE_STDLIB_H YES) -ensure_file_include("stdio.h" HAVE_STDIO_H YES) -ensure_file_include("math.h" HAVE_MATH_H YES) -ensure_file_include("float.h" HAVE_FLOAT_H YES) -ensure_file_include("time.h" HAVE_TIME_H YES) -ensure_file_include("stdarg.h" HAVE_STDARG_H YES) -ensure_file_include("ctype.h" HAVE_CTYPE_H YES) -ensure_file_include("assert.h" HAVE_ASSERT_H YES) - -# For the following files, we provide an alternative, they are not mandatory -ensure_file_include("stdint.h" OPJ_HAVE_STDINT_H NO) -ensure_file_include("inttypes.h" OPJ_HAVE_INTTYPES_H NO) +ensure_file_include("string.h" HAVE_STRING_H YES) +ensure_file_include("memory.h" HAVE_MEMORY_H YES) +ensure_file_include("stdlib.h" HAVE_STDLIB_H YES) +ensure_file_include("stdio.h" HAVE_STDIO_H YES) +ensure_file_include("math.h" HAVE_MATH_H YES) +ensure_file_include("float.h" HAVE_FLOAT_H YES) +ensure_file_include("time.h" HAVE_TIME_H YES) +ensure_file_include("stdarg.h" HAVE_STDARG_H YES) +ensure_file_include("ctype.h" HAVE_CTYPE_H YES) +ensure_file_include("assert.h" HAVE_ASSERT_H YES) +ensure_file_include("stdint.h" HAVE_STDINT_H YES) +ensure_file_include("inttypes.h" HAVE_INTTYPES_H YES) # why check this one ? for openjpip ? include (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake) @@ -306,24 +291,20 @@ endif() #----------------------------------------------------------------------------- # install all targets referenced as OPENJPEGTargets (relocatable with CMake 3.0+) install(EXPORT OpenJPEGTargets DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR}) -if (${CMAKE_VERSION} VERSION_LESS 3.0) - set(PACKAGE_INIT) - set(PACKAGE_CMAKE_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_FULL_INCLUDEDIR}) - configure_file( ${${OPENJPEG_NAMESPACE}_SOURCE_DIR}/cmake/OpenJPEGConfig.cmake.in - ${${OPENJPEG_NAMESPACE}_BINARY_DIR}/OpenJPEGConfig.cmake - @ONLY - ) -else() - include(CMakePackageConfigHelpers) - configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/cmake/OpenJPEGConfig.cmake.in +include(CMakePackageConfigHelpers) +configure_package_config_file(${CMAKE_CURRENT_LIST_DIR}/cmake/OpenJPEGConfig.cmake.in + ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake + INSTALL_DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR} + PATH_VARS CMAKE_INSTALL_INCLUDEDIR) +write_basic_package_version_file( + ${OPENJPEG_BINARY_DIR}/OpenJPEGConfigVersion.cmake + COMPATIBILITY SameMajorVersion + VERSION ${OPENJPEG_VERSION}) +install( + FILES ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake - INSTALL_DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR} - PATH_VARS CMAKE_INSTALL_INCLUDEDIR) -endif() - -install( FILES ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake - DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR} -) + ${OPENJPEG_BINARY_DIR}/OpenJPEGConfigVersion.cmake + DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR}) #-----------------------------------------------------------------------------