diff options
Diffstat (limited to 'CMake')
| -rw-r--r-- | CMake/CMakeDefaults.cmake | 22 | ||||
| -rw-r--r-- | CMake/FindCMocka.cmake | 5 | ||||
| -rw-r--r-- | CMake/FindFreeImage.cmake | 58 | ||||
| -rw-r--r-- | CMake/FindGTKUnixPrint.cmake | 7 | ||||
| -rw-r--r-- | CMake/FindInkscape.cmake | 47 | ||||
| -rw-r--r-- | CMake/FindLibzip.cmake | 79 | ||||
| -rw-r--r-- | CMake/FindMiniXML.cmake | 98 | ||||
| -rw-r--r-- | CMake/FindPandoc.cmake | 2 | ||||
| -rw-r--r-- | CMake/FindZlib.cmake | 61 | 
9 files changed, 310 insertions, 69 deletions
diff --git a/CMake/CMakeDefaults.cmake b/CMake/CMakeDefaults.cmake new file mode 100644 index 0000000..4f143f8 --- /dev/null +++ b/CMake/CMakeDefaults.cmake @@ -0,0 +1,22 @@ +# Always include srcdir and builddir in include path
 +# This saves typing ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY} in
 +# about every subdir
 +# since cmake 2.4.0
 +set(CMAKE_INCLUDE_CURRENT_DIR ON)
 +
 +# Put the include dirs which are in the source or build tree
 +# before all other include dirs, so the headers in the sources
 +# are prefered over the already installed ones
 +# since cmake 2.4.1
 +set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
 +
 +# Use colored output
 +# since cmake 2.4.0
 +set(CMAKE_COLOR_MAKEFILE ON)
 +
 +# Use folders to organize targets
 +set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 +
 +#
 +# Print Installing but not Up-to-date messages
 +set(CMAKE_INSTALL_MESSAGE LAZY)
 diff --git a/CMake/FindCMocka.cmake b/CMake/FindCMocka.cmake index 6a5484e..79ebeb8 100644 --- a/CMake/FindCMocka.cmake +++ b/CMake/FindCMocka.cmake @@ -21,9 +21,8 @@  #=============================================================================
  #
 -
 -set (CMOCKA_ROOT_DIR
 -		"../../external/x86/cmocka")
 +set(CMOCKA_ROOT_DIR
 +	"$ENV{XTCEXTERNALROOT}/${XTRKCAD_ARCH_SUBDIR}/cmocka")
  find_path(CMOCKA_INCLUDE_DIR
      NAMES
 diff --git a/CMake/FindFreeImage.cmake b/CMake/FindFreeImage.cmake index 6073916..58afdac 100644 --- a/CMake/FindFreeImage.cmake +++ b/CMake/FindFreeImage.cmake @@ -11,22 +11,21 @@  # XTrackCAD specific directory tree is assumed
  #
 -if (WIN32)
 +if(WIN32)
 +    # Folders for x86/x64
 +	set( FREEIMAGEBASEDIR  "$ENV{XTCEXTERNALROOT}/${XTRKCAD_ARCH_SUBDIR}/FreeImage" )
  	find_path( FREEIMAGE_INCLUDE_PATH FreeImage.h
 -		PATHS
 -    $ENV{XTCEXTERNALROOT}/x86/FreeImage
 +		PATHS ${FREEIMAGEBASEDIR}
  		DOC "The directory where FreeImage.h resides")
  	find_library( FREEIMAGE_LIBRARY
  		NAMES FreeImage freeimage
 -		PATHS
 -    $ENV{XTCEXTERNALROOT}/x86/FreeImage
 +		PATHS ${FREEIMAGEBASEDIR}
  		DOC "The FreeImage library")
  	find_file( FREEIMAGE_SHAREDLIB
  		NAMES freeimage.DLL
 -		PATHS
 -    $ENV{XTCEXTERNALROOT}/x86/FreeImage
 +		PATHS ${FREEIMAGEBASEDIR}
  	)
 -else (WIN32)
 +else()
  	find_path( FREEIMAGE_INCLUDE_PATH FreeImage.h
  		/usr/include
  		/usr/local/include
 @@ -43,16 +42,45 @@ else (WIN32)  		/sw/lib
  		/opt/local/lib
  		DOC "The FreeImage library")
 -endif (WIN32)
 +endif()
 +include(FindPackageHandleStandardArgs)
  find_package_handle_standard_args( FreeImage
 -		DEFAULT_MSG
 +		REQUIRED_VARS
  		FREEIMAGE_LIBRARY
  		FREEIMAGE_INCLUDE_PATH
  )
 -mark_as_advanced(
 -	FREEIMAGE_FOUND
 -	FREEIMAGE_LIBRARY
 -	FREEIMAGE_INCLUDE_PATH
 -  FREEIMAGE_SHAREDLIB)
 +if(FreeImage_FOUND)
 +	mark_as_advanced(
 +		FREEIMAGE_FOUND
 +		FREEIMAGE_LIBRARY
 +		FREEIMAGE_INCLUDE_PATH
 +  		FREEIMAGE_SHAREDLIB
 +	)
 +endif()
 +
 +if(FreeImage_FOUND AND NOT TARGET FreeImage::FreeImage)
 +	add_library(FreeImage::FreeImage UNKNOWN IMPORTED)
 +	set_property(TARGET FreeImage::FreeImage PROPERTY IMPORTED_LOCATION ${FREEIMAGE_LIBRARY})
 +	target_include_directories(FreeImage::FreeImage INTERFACE ${FREEIMAGE_INCLUDE_PATH})
 +
 +	set(FreeImage_VERSION_MAJOR)
 +    set(FreeImage_VERSION_MINOR)
 +    set(FreeImage_VERSION_PATCH)
 +    file(READ "${FREEIMAGE_INCLUDE_PATH}/FreeImage.h" _FreeImage_H_CONTENTS)
 +
 +    string(REGEX MATCH "#define[ \t]+FREEIMAGE_MAJOR_VERSION[ \t]+[0-9]+" FreeImage_VERSION_MAJOR "${_FreeImage_H_CONTENTS}")
 +    string(REGEX MATCH "[0-9]+$" FreeImage_VERSION_MAJOR ${FreeImage_VERSION_MAJOR})
 +
 +    string(REGEX MATCH "#define[ \t]+FREEIMAGE_MINOR_VERSION[ \t]+[0-9]+" FreeImage_VERSION_MINOR "${_FreeImage_H_CONTENTS}")
 +    string(REGEX MATCH "[0-9]+$" FreeImage_VERSION_MINOR ${FreeImage_VERSION_MINOR})
 +
 +    string(REGEX MATCH "#define[ \t]+FREEIMAGE_RELEASE_SERIAL[ \t]+[0-9]+" FreeImage_VERSION_PATCH
 +           "${_FreeImage_H_CONTENTS}")
 +    string(REGEX MATCH "[0-9]+$" FreeImage_VERSION_PATCH ${FreeImage_VERSION_PATCH})
 +
 +	set(FreeImage_VERSION "${FreeImage_VERSION_MAJOR}.${FreeImage_VERSION_MINOR}.${FreeImage_VERSION_PATCH}" 
 +		CACHE STRING 
 +		"Version number of FreeImage")
 +endif()
 diff --git a/CMake/FindGTKUnixPrint.cmake b/CMake/FindGTKUnixPrint.cmake index 06bc548..dd9baab 100644 --- a/CMake/FindGTKUnixPrint.cmake +++ b/CMake/FindGTKUnixPrint.cmake @@ -46,4 +46,9 @@ if (GTK_UNIX_PRINT_VERSION)  endif ()  include(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK_UNIX_PRINT DEFAULT_MSG GTK_UNIX_PRINT_INCLUDE_DIRS GTK_UNIX_PRINT_LIBRARIES VERSION_OK) +find_package_handle_standard_args(GTKUnixPrint  +	DEFAULT_MSG  +	GTK_UNIX_PRINT_INCLUDE_DIRS  +	GTK_UNIX_PRINT_LIBRARIES  +	VERSION_OK +) diff --git a/CMake/FindInkscape.cmake b/CMake/FindInkscape.cmake new file mode 100644 index 0000000..0ed7034 --- /dev/null +++ b/CMake/FindInkscape.cmake @@ -0,0 +1,47 @@ + +# Try to find the Inkscape command-line SVG rasterizer +# Once done this will define +# +# Inkscape_FOUND +# Inkscape_EXECUTABLE   Where to find Inkscape +# Inkscape_VERSION      The Inkscape version number +# Inkscape_EXPORT       Option to specify the destination file +# Inkscape_GUI          Option to disable the GUI if needed +# +# Module is from https://github.com/arx/ArxLibertatis + +find_program( +	Inkscape_EXECUTABLE +	NAMES inkscape +    HINTS "C:/Program Files/Inkscape/bin"  +	DOC "Inkscape command-line SVG rasterizer" +) + +execute_process(COMMAND ${Inkscape_EXECUTABLE} "--version" OUTPUT_VARIABLE _Inkscape_VERSION ERROR_QUIET) +STRING(REGEX MATCH "[1-9]\.[0-9\+\.[0-9]+" _Inkscape_VERSION ${_Inkscape_VERSION}) + +set(Inkscape_VERSION ${_Inkscape_VERSION} CACHE STRING "Inkscape Version") + +execute_process(COMMAND ${Inkscape_EXECUTABLE} "--help" OUTPUT_VARIABLE _Inkscape_HELP ERROR_QUIET) + +if(_Inkscape_HELP MATCHES "--without-gui") +	set(Inkscape_GUI "--without-gui" CACHE STRING "Inkscape option to disable the GUI if needed") +endif() + +if(NOT DEFINED Inkscape_EXPORT) +	foreach(option IN ITEMS "--export-filename=" "--export-file=" "--export-png=") +		if(_Inkscape_HELP MATCHES "${option}") +			set(Inkscape_EXPORT "${option}" CACHE STRING "Inkscape option to specify the export filename") +			break() +		endif() +	endforeach() +	if(NOT DEFINED Inkscape_EXPORT) +		message(WARNING "Could not determine Inkscape export file option, assuming -o") +		set(Inkscape_EXPORT "-o " CACHE STRING "Inkscape option to specify the export filename") +	endif() +endif() + +# handle the QUIETLY and REQUIRED arguments and set Inkscape_FOUND to TRUE if +# all listed variables are TRUE +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Inkscape REQUIRED_VARS Inkscape_EXECUTABLE)
\ No newline at end of file diff --git a/CMake/FindLibzip.cmake b/CMake/FindLibzip.cmake index b6f1a9e..8838a86 100644 --- a/CMake/FindLibzip.cmake +++ b/CMake/FindLibzip.cmake @@ -4,29 +4,26 @@  # LIBZIP_INCLUDE_DIR_ZIP
  # LIBZIP_INCLUDE_DIR_ZIPCONF
  # LIBZIP_LIBRARY
 +# LIBZIP_VERSION
 +#
 +# Target Libzip::Libzip is exported
  #
  # There is no default installation for libzip on Windows so a
  # XTrackCAD specific directory tree is assumed
  #
  if(WIN32)
 +  set(LIBZIPBASEDIR "$ENV{XTCEXTERNALROOT}/${XTRKCAD_ARCH_SUBDIR}/libzip" )
    find_path( LIBZIP_INCLUDE_DIR_ZIP zip.h
 -    PATHS
 -    $ENV{XTCEXTERNALROOT}/x86/libzip
 -    DOC "The directory where zip.h resides")
 +      PATHS ${LIBZIPBASEDIR} "${LIBZIPBASEDIR}/include" 
 +      DOC "The directory where zip.h resides")
    find_path( LIBZIP_INCLUDE_DIR_ZIPCONF zipconf.h
 -    PATHS
 -    $ENV{XTCEXTERNALROOT}/x86/libzip
 -    DOC "The directory where zip.h resides")
 +      PATHS ${LIBZIPBASEDIR} "${LIBZIPBASEDIR}/include"
 +      DOC "The directory where zip.h resides")
    find_library( LIBZIP_LIBRARY
 -    NAMES zip Zip
 -    PATHS
 -    $ENV{XTCEXTERNALROOT}/x86/libzip
 -    DOC "The libzip library")
 -  find_file( LIBZIP_SHAREDLIB
 -    NAMES zip.dll Zip.dll
 -    PATHS
 -    $ENV{XTCEXTERNALROOT}/x86/libzip)
 +      NAMES zip Zip 
 +      PATHS ${LIBZIPBASEDIR} "${LIBZIPBASEDIR}/lib"
 +      DOC "The libzip library")
  else(WIN32)
    find_package(PkgConfig)
    pkg_check_modules(PC_LIBZIP QUIET libzip)
 @@ -39,23 +36,51 @@ else(WIN32)      NAMES zipconf.h
      HINTS ${PC_LIBZIP_INCLUDE_DIRS})
 -  find_library(LIBZIP_LIBRARY
 -    NAMES zip)
 +  if(UNIX AND NOT APPLE)
 +    find_library(LIBZIP_LIBRARY
 +      NAMES libzip.a zip
 +      PATHS
 +		/usr/lib64
 +		/usr/lib
 +		/usr/local/lib64
 +		/usr/local/lib
 +		/sw/lib
 +		/opt/local/lib
 +		${CMAKE_CURRENT_SOURCE_DIR}/app/tools/lib/linux
 +	)
 +  else()
 +    find_library(LIBZIP_LIBRARY
 +      NAMES zip)
 +  endif()
  endif(WIN32)
  include(FindPackageHandleStandardArgs)
 -FIND_PACKAGE_HANDLE_STANDARD_ARGS(
 -    LIBZIP DEFAULT_MSG
 -    LIBZIP_LIBRARY LIBZIP_INCLUDE_DIR_ZIP LIBZIP_INCLUDE_DIR_ZIPCONF)
 +find_package_handle_standard_args(
 +    Libzip 
 +    REQUIRED_VARS
 +    LIBZIP_LIBRARY LIBZIP_INCLUDE_DIR_ZIP LIBZIP_INCLUDE_DIR_ZIPCONF
 +)
 +
 +if(Libzip_FOUND)
 +  mark_as_advanced(
 +    LIBZIP_LIBRARY 
 +    LIBZIP_INCLUDE_DIR_ZIP 
 +    LIBZIP_INCLUDE_DIR_ZIPCONF 
 +  ) 
 +endif()  
  set(LIBZIP_VERSION 0)
 -if (LIBZIP_INCLUDE_DIR_ZIPCONF)
 -  FILE(READ "${LIBZIP_INCLUDE_DIR_ZIPCONF}/zipconf.h" _LIBZIP_VERSION_CONTENTS)
 -  if (_LIBZIP_VERSION_CONTENTS)
 -    STRING(REGEX REPLACE ".*#define LIBZIP_VERSION \"([0-9a-z.]+)\".*" "\\1" LIBZIP_VERSION "${_LIBZIP_VERSION_CONTENTS}")
 -  endif ()
 -endif ()
 +if(Libzip_FOUND AND NOT TARGET Libzip::Libzip)
 +  add_library(Libzip::Libzip UNKNOWN IMPORTED)
 +  set_property(TARGET Libzip::Libzip PROPERTY IMPORTED_LOCATION ${LIBZIP_LIBRARY})
 +  target_include_directories(Libzip::Libzip INTERFACE ${LIBZIP_INCLUDE_DIR_ZIP})
 -set(LIBZIP_VERSION ${LIBZIP_VERSION} CACHE STRING "Version number of libzip")
 -mark_as_advanced(LIBZIP_LIBRARY LIBZIP_INCLUDE_DIR_ZIP LIBZIP_INCLUDE_DIR_ZIPCONF LIBZIP_SHAREDLIB) 
 +  if (LIBZIP_INCLUDE_DIR_ZIPCONF)
 +    file(READ "${LIBZIP_INCLUDE_DIR_ZIPCONF}/zipconf.h" _LIBZIP_VERSION_CONTENTS)
 +    if (_LIBZIP_VERSION_CONTENTS)
 +      string(REGEX REPLACE ".*#define LIBZIP_VERSION \"([0-9a-z.]+)\".*" "\\1" LIBZIP_VERSION "${_LIBZIP_VERSION_CONTENTS}")
 +    endif ()
 +  endif ()
 +  set(LIBZIP_VERSION ${LIBZIP_VERSION} CACHE STRING "Version number of libzip")
 +endif()
 diff --git a/CMake/FindMiniXML.cmake b/CMake/FindMiniXML.cmake new file mode 100644 index 0000000..cded8d4 --- /dev/null +++ b/CMake/FindMiniXML.cmake @@ -0,0 +1,98 @@ +#
 +# Try to find the mini-xml library and include path.
 +# Once done this will define
 +#
 +# MINIXML_FOUND
 +# MINIXML_INCLUDE_PATH
 +# MINIXML_LIBRARY
 +#
 +# There is no default installation for minixml on Windows so a
 +# XTrackCAD specific directory tree is assumed
 +# Windows build uses the static library for minixml
 +
 +if (WIN32)
 +	set(MXMLBASEDIR "$ENV{XTCEXTERNALROOT}/${XTRKCAD_ARCH_SUBDIR}/mxml" )
 +	find_path( MINIXML_INCLUDE_PATH mxml.h
 +		PATHS ${MXMLBASEDIR}
 +		DOC "The directory where mxml.h resides")
 +	find_library( MINIXML_LIBRARY
 +		NAMES mxmlstat.lib
 +		PATHS ${MXMLBASEDIR}
 +		DOC "The Mini XML static library")
 +else ()
 +	find_path( MINIXML_INCLUDE_PATH mxml.h
 +		/usr/include
 +		/usr/local/include
 +		/sw/include
 +		/opt/local/include
 +	DOC "The directory where mxml.h resides")
 +	if(UNIX AND NOT APPLE)
 +		find_library( MINIXML_LIBRARY
 +			NAMES libmxml.a mxml1 mxml
 +			PATHS
 +			/usr/lib64
 +			/usr/lib
 +			/usr/local/lib64
 +			/usr/local/lib
 +			/sw/lib
 +			/opt/local/lib
 +		DOC "The Mini XML library")
 +	else()
 +		find_library( MINIXML_LIBRARY
 +			NAMES mxml1 mxml
 +			PATHS
 +			/usr/lib64
 +			/usr/lib
 +			/usr/local/lib64
 +			/usr/local/lib
 +			/sw/lib
 +			/opt/local/lib
 +		DOC "The Mini XML library")
 +	endif()
 +	find_library( MINIXML_STATIC_LIBRARY
 +		NAMES libmxml.a
 +		PATHS
 +		/usr/lib64
 +		/usr/lib
 +		/usr/local/lib64
 +		/usr/local/lib
 +		/sw/lib
 +		/opt/local/lib
 +		DOC "The Mini XML static library")
 +endif (WIN32)
 +
 +include(FindPackageHandleStandardArgs)
 +
 +find_package_handle_standard_args( 
 +	MiniXML
 +	REQUIRED_VARS
 +	MINIXML_LIBRARY
 +	MINIXML_INCLUDE_PATH
 +)
 +
 +if(MiniXML_FOUND)
 +	mark_as_advanced(
 +		MINIXML_FOUND
 +		MINIXML_LIBRARY
 +		MINIXML_INCLUDE_PATH
 +	)
 +endif()
 +
 +if (MiniXML_FOUND AND NOT TARGET MiniXML::MiniXML)
 +  add_library(MiniXML::mxml UNKNOWN IMPORTED)
 +  set_property(TARGET MiniXML::mxml PROPERTY IMPORTED_LOCATION ${MINIXML_LIBRARY})
 +  target_include_directories(MiniXML::mxml INTERFACE ${MINIXML_INCLUDE_PATH})
 +
 +  set(MXML_VERSION_MAJOR)
 +  set(MXML_VERSION_MINOR)
 +  file(READ "${MINIXML_INCLUDE_PATH}/mxml.h" _mxml_H_CONTENTS)
 +
 +  string(REGEX MATCH "#[ \t]*define[ \t]+MXML_MAJOR_VERSION[ \t]+[0-9]+" MXML_VERSION_MAJOR "${_mxml_H_CONTENTS}")
 +  string(REGEX MATCH "[0-9]+$" MXML_VERSION_MAJOR ${MXML_VERSION_MAJOR})
 +  
 +  string(REGEX MATCH "#[ \t]*define[ \t]+MXML_MINOR_VERSION[ \t]+[0-9]+" MXML_VERSION_MINOR "${_mxml_H_CONTENTS}")
 +  string(REGEX MATCH "[0-9]+$" MXML_VERSION_MINOR ${MXML_VERSION_MINOR})
 +  set(MiniXML_VERSION "${MXML_VERSION_MAJOR}.${MXML_VERSION_MINOR}" 
 +	  CACHE STRING
 +	  "Version number of MiniXML")
 +endif()
 diff --git a/CMake/FindPandoc.cmake b/CMake/FindPandoc.cmake index 1a076ff..c5ea5ed 100644 --- a/CMake/FindPandoc.cmake +++ b/CMake/FindPandoc.cmake @@ -13,6 +13,6 @@ find_program(PANDOC_EXECUTABLE    NAMES pandoc
    DOC "Pandoc - a universal document converter")
 -FIND_PACKAGE_HANDLE_STANDARD_ARGS(Pandoc REQUIRED_VARS PANDOC_EXECUTABLE)
 +find_package_handle_standard_args(Pandoc REQUIRED_VARS PANDOC_EXECUTABLE)
  mark_as_advanced(PANDOC_EXECUTABLE)
\ No newline at end of file diff --git a/CMake/FindZlib.cmake b/CMake/FindZlib.cmake index 3305ee3..e7785b6 100644 --- a/CMake/FindZlib.cmake +++ b/CMake/FindZlib.cmake @@ -1,29 +1,23 @@  # Finds zlib.
  #
  # This module defines:
 -# zlib_INCLUDE_DIR_ZIP
 -# zlib_INCLUDE_DIR_ZIPCONF
 -# zlib_LIBRARY
 +# ZLIB_INCLUDE_DIR
 +# ZLIB_LIBRARY
  #
  # There is no default installation for zlib on Windows so a
  # XTrackCAD specific directory tree is assumed
  #
  if(WIN32)
 -  find_path( ZLIB_INCLUDE_DIR zlib.h
 -    PATHS
 -    $ENV{XTCEXTERNALROOT}/x86/zlib
 -    DOC "The directory where zip.h resides")
 -  find_library( ZLIB_LIBRARY
 -    NAMES zlib Zlib
 -    PATHS
 -    $ENV{XTCEXTERNALROOT}/x86/zlib
 -    DOC "The zlib library")
 -  find_file( ZLIB_SHAREDLIB
 -    NAMES zlib.dll Zlib.dll
 -    PATHS
 -    $ENV{XTCEXTERNALROOT}/x86/zlib)
 -else(WIN32)
 +    set(ZLIBBASEDIR "$ENV{XTCEXTERNALROOT}/${XTRKCAD_ARCH_SUBDIR}/zlib" )
 +    find_path( ZLIB_INCLUDE_DIR zlib.h
 +      PATHS ${ZLIBBASEDIR} "${ZLIBBASEDIR}/include"
 +      DOC "The directory where zlib.h resides")
 +    find_library( ZLIB_LIBRARY
 +      NAMES zlibstatic
 +      PATHS ${ZLIBBASEDIR} "${ZLIBBASEDIR}/lib"
 +      DOC "The zlib library")
 +else()
    find_package(PkgConfig)
    pkg_check_modules(PC_ZLIB QUIET zlib)
 @@ -33,11 +27,34 @@ else(WIN32)    find_library(ZLIB_LIBRARY
    	NAMES z)
 -endif(WIN32)
 +endif()
  include(FindPackageHandleStandardArgs)
 -FIND_PACKAGE_HANDLE_STANDARD_ARGS(
 -  ZLIB DEFAULT_MSG
 -  ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
 -mark_as_advanced(ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
 +find_package_handle_standard_args(
 +    Zlib 
 +    REQUIRED_VARS
 +    ZLIB_LIBRARY 
 +    ZLIB_INCLUDE_DIR
 +)
 +
 +if(Zlib_FOUND)
 +  mark_as_advanced(
 +    ZLIB_LIBRARY 
 +    ZLIB_INCLUDE_DIR 
 +  ) 
 +endif() 
 +
 +if(Zlib_FOUND AND NOT TARGET Zlib::Zlib)
 +  add_library(Zlib::Zlib UNKNOWN IMPORTED)
 +  set_property(TARGET Zlib::Zlib PROPERTY IMPORTED_LOCATION ${ZLIB_LIBRARY})
 +  target_include_directories(Zlib::Zlib INTERFACE ${ZLIB_INCLUDE_DIR})
 +
 +  if (ZLIB_INCLUDE_DIR)
 +    file(READ "${ZLIB_INCLUDE_DIR}/zlib.h" _ZLIB_VERSION_CONTENTS)
 +    if (_ZLIB_VERSION_CONTENTS)
 +      string(REGEX REPLACE ".*#define ZLIB_VERSION \"([0-9a-z.]+)\".*" "\\1" ZLIB_VERSION "${_ZLIB_VERSION_CONTENTS}")
 +    endif ()
 +  endif ()
 +  set(ZLIB_VERSION ${ZLIB_VERSION} CACHE STRING "Version number of zlib")
 +endif()
  | 
