mirror of
				https://github.com/RetroDECK/ES-DE.git
				synced 2025-04-10 19:15:13 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			336 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			336 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| #
 | |
| #  File        : CMakeLists.txt
 | |
| #                ( Configuration file for 'cmake' utility )
 | |
| #
 | |
| #  Description : CMakeLists.txt configuration file for compiling CImg-based code.
 | |
| #                This file is a part of the CImg Library project.
 | |
| #                ( http://cimg.eu )
 | |
| #
 | |
| #  Copyright   : Antonio Albiol
 | |
| #                ( http://personales.upv.es/~aalbiol/ )
 | |
| #
 | |
| #  License     : CeCILL v2.0
 | |
| #                ( http://www.cecill.info/licences/Licence_CeCILL_V2-en.html )
 | |
| #
 | |
| #  This software is governed by the CeCILL  license under French law and
 | |
| #  abiding by the rules of distribution of free software.  You can  use,
 | |
| #  modify and/ or redistribute the software under the terms of the CeCILL
 | |
| #  license as circulated by CEA, CNRS and INRIA at the following URL
 | |
| #  "http://www.cecill.info".
 | |
| #
 | |
| #  As a counterpart to the access to the source code and  rights to copy,
 | |
| #  modify and redistribute granted by the license, users are provided only
 | |
| #  with a limited warranty  and the software's author,  the holder of the
 | |
| #  economic rights,  and the successive licensors  have only  limited
 | |
| #  liability.
 | |
| #
 | |
| #  In this respect, the user's attention is drawn to the risks associated
 | |
| #  with loading,  using,  modifying and/or developing or reproducing the
 | |
| #  software by the user in light of its specific status of free software,
 | |
| #  that may mean  that it is complicated to manipulate,  and  that  also
 | |
| #  therefore means  that it is reserved for developers  and  experienced
 | |
| #  professionals having in-depth computer knowledge. Users are therefore
 | |
| #  encouraged to load and test the software's suitability as regards their
 | |
| #  requirements in conditions enabling the security of their systems and/or
 | |
| #  data to be ensured and,  more generally, to use and operate it in the
 | |
| #  same conditions as regards security.
 | |
| #
 | |
| #  The fact that you are presently reading this means that you have had
 | |
| #  knowledge of the CeCILL license and that you accept its terms.
 | |
| #
 | |
| 
 | |
| cmake_minimum_required(VERSION 2.6)
 | |
| 
 | |
| 
 | |
| PROJECT(Examples-CIMG)
 | |
| 
 | |
| # Prevent compilation in-source
 | |
| if( ${CMAKE_BINARY_DIR} STREQUAL ${PROJECT_SOURCE_DIR} )
 | |
|   Message( " " )
 | |
|   Message( FATAL_ERROR "Source and build  directories are the same.
 | |
|  Create an empty build directory,
 | |
|  change into it and re-invoke cmake")
 | |
| endif()
 | |
| 
 | |
| 
 | |
| # To use PKG_CHECK_MODULES to find some optional packages
 | |
| find_package(PkgConfig)
 | |
| 
 | |
| #    Tell CMake where to leave executables
 | |
| SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR})
 | |
| 
 | |
| #Path of CImg.h file relative to this file path
 | |
| set(CIMG_H_PATH ${PROJECT_SOURCE_DIR}/..)
 | |
| include_directories( ${PROJECT_SOURCE_DIR} )
 | |
| include_directories( ${CIMG_H_PATH} )
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| # ### CIMG related stuff
 | |
| # Flags to enable fast image display, using the XSHM library.
 | |
| SET(CIMG_XSHM_CCFLAGS  -Dcimg_use_xshm)
 | |
| 
 | |
| # Flags to enable screen mode switching, using the XRandr library.
 | |
| SET(CIMG_XRANDR_CCFLAGS  -Dcimg_use_xrandr)
 | |
| 
 | |
| # Flags to enable native support for JPEG image files, using the JPEG library.
 | |
| # ( http://www.ijg.org/ )
 | |
| SET(CIMG_JPEG_CCFLAGS  -Dcimg_use_jpeg)
 | |
| 
 | |
| # Flags to enable native support for TIFF image files, using the TIFF library.
 | |
| # ( http://www.libtiff.org/ )
 | |
| SET(CIMG_TIFF_CCFLAGS  -Dcimg_use_tiff)
 | |
| 
 | |
| # Flags to enable native support for PNG image files, using the PNG library.
 | |
| # ( http://www.libpng.org/ )
 | |
| SET(CIMG_PNG_CCFLAGS  -Dcimg_use_png)
 | |
| 
 | |
| #Flags to enable OPENCV support (Camera)
 | |
| # ( http://www.opencv.org/ )
 | |
| SET(CIMG_OPENCV_CCFLAGS-Dcimg_use_opencv)
 | |
| 
 | |
| # Flags to enable native support for EXR image files, using the OpenEXR library.
 | |
| # ( http://www.openexr.com/ )
 | |
| SET(CIMG_OPENEXR_CCFLAGS  -Dcimg_use_openexr)
 | |
| 
 | |
| # Flags to enable native support for various video files, using the FFMPEG library.
 | |
| # ( http://www.ffmpeg.org/ )
 | |
| SET(CIMG_FFMPEG_CCFLAGS  -Dcimg_use_ffmpeg)
 | |
| 
 | |
| # Flags to enable native support of most classical image file formats, using the Magick++ library.
 | |
| # ( http://www.imagemagick.org/Magick++/ )
 | |
| SET(CIMG_MAGICK_CCFLAGS -Dcimg_use_magick)
 | |
| 
 | |
| # Flags to enable faster Discrete Fourier Transform computation, using the FFTW3 library
 | |
| # ( http://www.fftw.org/ )
 | |
| SET(CIMG_FFTW3_CCFLAGS  -Dcimg_use_fftw3)
 | |
| 
 | |
| # Flags to enable native support for HEIC image files, using libheif.
 | |
| # ( https://github.com/strukturag/libheif )
 | |
| SET(CIMG_HEIC_CCFLAGS  -Dcimg_use_heic)
 | |
| 
 | |
| 
 | |
| 
 | |
| # ### Search Additional Libraries ##########
 | |
| FIND_PACKAGE(OpenCV)
 | |
| FIND_PACKAGE(JPEG)
 | |
| FIND_PACKAGE(TIFF)
 | |
| FIND_PACKAGE(PNG)
 | |
| FIND_PACKAGE(ZLIB)
 | |
| FIND_PACKAGE(LAPACK)
 | |
| FIND_PACKAGE(BLAS)
 | |
| 
 | |
| if(PKG_CONFIG_FOUND)
 | |
|   pkg_check_modules(PC_HEIF libheif QUIET)
 | |
| endif()
 | |
| 
 | |
| find_path(HEIF_INCLUDE_DIR NAMES libheif/heif_cxx.h
 | |
|                            PATHS ${PC_HEIF_INCLUDEDIR})
 | |
| find_library(HEIF_LIBRARY NAMES heif libheif
 | |
|                           PATHS ${PC_HEIF_LIBDIR})
 | |
| 
 | |
| set(HEIF_VERSION ${PC_HEIF_VERSION})
 | |
| 
 | |
| include(FindPackageHandleStandardArgs)
 | |
| find_package_handle_standard_args(HEIF
 | |
|                                   REQUIRED_VARS HEIF_LIBRARY HEIF_INCLUDE_DIR
 | |
|                                   VERSION_VAR HEIF_VERSION)
 | |
| 
 | |
| PKG_CHECK_MODULES(FFTW3 fftw3)
 | |
| PKG_CHECK_MODULES(OPENEXR OpenEXR)
 | |
| PKG_CHECK_MODULES(MAGICK Magick++)
 | |
| 
 | |
| # PKG_CHECK_MODULES(LIBAVCODEC libavcodec)
 | |
| # PKG_CHECK_MODULES(LIBAVFORMAT libavformat)
 | |
| # PKG_CHECK_MODULES(LIBSWSCALE libswscale)
 | |
| # PKG_CHECK_MODULES(LIBAVUTIL libavutil)
 | |
| 
 | |
| if(NOT WIN32)
 | |
|   FIND_PACKAGE(X11)
 | |
|   FIND_PACKAGE(Threads REQUIRED)
 | |
| endif()
 | |
| 
 | |
| # #### End of additional libraries search ##########
 | |
| 
 | |
| 
 | |
| ### Configure Paths according to detected packages
 | |
| if(TIFF_FOUND)
 | |
|   get_filename_component(TIFF_LIB_DIRS ${TIFF_LIBRARIES} PATH)
 | |
|   SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_TIFF_CCFLAGS}")
 | |
|   link_directories(${TIFF_LIB_DIRS})
 | |
|   include_directories(${TIFF_INCLUDE_DIR})
 | |
|   SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${TIFF_LIBRARIES})
 | |
| endif()
 | |
| 
 | |
| 
 | |
| 
 | |
| if(JPEG_FOUND)
 | |
|   get_filename_component(JPEG_LIB_DIRS ${JPEG_LIBRARIES} PATH)
 | |
|   SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_JPEG_CCFLAGS}")
 | |
|   link_directories(${JPEG_LIB_DIRS})
 | |
|   include_directories(${JPEG_INCLUDE_DIR})
 | |
|   SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${JPEG_LIBRARIES})
 | |
| endif()
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| if (ZLIB_FOUND)
 | |
|   SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_ZLIB_CCFLAGS}")
 | |
|   link_directories(${ZLIB_LIB_DIRS})
 | |
|   include_directories(${ZLIB_INCLUDE_DIR})
 | |
|   SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${ZLIB_LIBRARIES})
 | |
| 
 | |
|   # PNG requires ZLIB
 | |
|   if(PNG_FOUND)
 | |
|     SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_PNG_CCFLAGS}")
 | |
|     link_directories(${PNG_LIB_DIRS})
 | |
|     include_directories(${PNG_INCLUDE_DIR} )
 | |
|     SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${PNG_LIBRARIES} )
 | |
|   endif()
 | |
| endif()
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| if(FFTW3_FOUND)
 | |
|   SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_FFTW3_CCFLAGS}")
 | |
|   link_directories( ${FFTW3_LIBRARY_DIRS} )
 | |
|   include_directories( ${FFTW3_INCLUDE_DIRS} )
 | |
|   SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${FFTW3_LIBRARIES} )
 | |
| endif()
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| if(OPENEXR_FOUND)
 | |
|   SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_OPENEXR_CCFLAGS}")
 | |
|   link_directories( ${OPENEXR_LIBRARY_DIRS} )
 | |
|   include_directories( ${OPENEXR_INCLUDE_DIRS} )
 | |
|   SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${OPENEXR_LIBRARIES} )
 | |
| endif()
 | |
| 
 | |
| 
 | |
| if(MAGICK_FOUND)
 | |
|   SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_MAGICK_CCFLAGS}")
 | |
|   link_directories( ${MAGICK_LIBRARY_DIRS} )
 | |
|   include_directories( ${MAGICK_INCLUDE_DIRS} )
 | |
|   SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${MAGICK_LIBRARIES} )
 | |
| endif()
 | |
| 
 | |
| if(HEIF_FOUND)
 | |
|   get_filename_component(HEIF_LIB_DIRS ${HEIF_LIBRARY} PATH)
 | |
|   SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_HEIC_CCFLAGS}")
 | |
|   link_directories( ${HEIF_LIB_DIRS} )
 | |
|   include_directories( ${HEIF_INCLUDE_DIRS} )
 | |
|   SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${HEIF_LIBRARY} )
 | |
| endif()
 | |
| 
 | |
| 
 | |
| if( LIBAVCODEC_FOUND  AND LIBAVFORMAT_FOUND AND LIBSWSCALE_FOUND AND LIBAVUTIL_FOUND )
 | |
|   SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_FFMPEG_CCFLAGS}")
 | |
|   link_directories( ${LIBAVFORMAT_LIBRARY_DIRS} )
 | |
|   link_directories( ${LIBAVCODEC_LIBRARY_DIRS} )
 | |
|   link_directories( ${LIBSWSCALE_LIBRARY_DIRS} )
 | |
|   link_directories( ${LIBAVUTIL_LIBRARY_DIRS} )
 | |
|   include_directories( ${LIBAVFORMAT_INCLUDE_DIRS} ${LIBAVFORMAT_INCLUDE_DIRS}/libavformat)
 | |
|   include_directories( ${LIBAVCODEC_INCLUDE_DIRS} ${LIBAVCODEC_INCLUDE_DIRS}/libavcodec )
 | |
|   include_directories( ${LIBSWSCALE_INCLUDE_DIRS} ${LIBSWSCALE_INCLUDE_DIRS}/libswscale)
 | |
|   include_directories( ${LIBAVUTIL_INCLUDE_DIRS} ${LIBAVUTIL_INCLUDE_DIRS}/libavutil )
 | |
|   SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBAVFORMAT_LIBRARIES} )
 | |
|   SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBAVCODEC_LIBRARIES} )
 | |
|   SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBSWSCALE_LIBRARIES} )
 | |
|   SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBAVUTIL_LIBRARIES} )
 | |
| endif()
 | |
| 
 | |
| 
 | |
| if(NOT APPLE)
 | |
|   if(NOT WIN32)
 | |
|     if(X11_FOUND)
 | |
|       SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_XSHM_CCFLAGS} ${CIMG_XRANDR_CCFLAGS}")
 | |
|       SET(SYSTEM_LIBS ${SYSTEM_LIBS} Xext Xrandr)
 | |
|     endif()
 | |
|   endif(NOT WIN32)
 | |
| endif(NOT APPLE)
 | |
| 
 | |
| if(X11_FOUND)
 | |
|   link_directories(${X11_LIB_DIRS})
 | |
|   include_directories(${X11_INCLUDE_DIR})
 | |
|   SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${X11_LIBRARIES} )
 | |
| endif()
 | |
| 
 | |
| if (NOT WIN32)
 | |
|   SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${CMAKE_THREAD_LIBS_INIT} )
 | |
| endif()
 | |
| 
 | |
| if( WIN32)
 | |
|   SET( SYSTEM_LIBS  ${SYSTEM_LIBS}  gdi32 )
 | |
| endif()
 | |
| 
 | |
| if (OpenCV_FOUND)
 | |
|   message("OpenCV Found")
 | |
|   SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_OPENCV_CCFLAGS}")
 | |
|   include_directories(${OpenCV_INCLUDE_DIRS})
 | |
|   link_directories(${OpenCV_LIB_DIRS})
 | |
|   SET( SYSTEM_LIBS  ${SYSTEM_LIBS}  ${OpenCV_LIBS} )
 | |
| endif()
 | |
| 
 | |
| 
 | |
| 
 | |
| if(LAPACK_FOUND)
 | |
|   SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_LAPACK_CCFLAGS}")
 | |
|   link_directories( ${LAPACK_LIBRARY_DIRS} )
 | |
|   include_directories( ${LAPACK_INCLUDE_DIRS} )
 | |
|   SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${LAPACK_LIBRARIES} )
 | |
| endif()
 | |
| 
 | |
| if(BLAS_FOUND)
 | |
|   SET(CIMG_CFLAGS "${CIMG_CFLAGS} ${CIMG_BLAS_CCFLAGS}")
 | |
|   link_directories( ${BLAS_LIBRARY_DIRS} )
 | |
|   include_directories( ${BLAS_INCLUDE_DIRS} )
 | |
|   SET( SYSTEM_LIBS ${SYSTEM_LIBS} ${BLAS_LIBRARIES} )
 | |
| endif()
 | |
| 
 | |
| 
 | |
| # Add CIMG Flags to Compilation Flags
 | |
| SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CIMG_CFLAGS}")
 | |
| 
 | |
| 
 | |
| SET(CIMG_FILES CImg_demo
 | |
|   captcha
 | |
|   curve_editor2d
 | |
|   dtmri_view3d
 | |
|   edge_explorer2d
 | |
|   fade_images
 | |
|   gaussian_fit1d
 | |
|   generate_loop_macros
 | |
|   hough_transform2d
 | |
|   image_registration2d
 | |
|   image2ascii
 | |
|   image_surface3d
 | |
|   jawbreaker
 | |
|   mcf_levelsets2d
 | |
|   mcf_levelsets3d
 | |
|   odykill
 | |
|   pde_heatflow2d
 | |
|   pde_TschumperleDeriche2d
 | |
|   plotter1d
 | |
|   radon_transform2d
 | |
|   scene3d
 | |
|   spherical_function3d
 | |
|   tetris
 | |
|   tron
 | |
|   tutorial
 | |
|   wavelet_atrous
 | |
|   use_draw_gradient
 | |
|   use_nlmeans
 | |
|   use_skeleton
 | |
|   use_RGBclass
 | |
|   )
 | |
| 
 | |
| foreach(program ${CIMG_FILES})
 | |
|   add_executable(${program} ${program}.cpp)
 | |
|   target_link_libraries(${program} ${SYSTEM_LIBS} )
 | |
| endforeach(program)
 | 
