diff --git a/CMakeLists.txt b/CMakeLists.txt index f7b8801d..8281aee1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -505,36 +505,16 @@ # -DMAGICK=ON|OFF # -DMAGICKDIR=DIR if(MAGICK) - set(CMAKE_PREFIX_PATH ${MAGICKDIR}) - find_package(ImageMagick QUIET COMPONENTS Magick++ MagickWand MagickCore) - mark_as_advanced(ImageMagick_EXECUTABLE_DIR ImageMagick_Magick++_INCLUDE_DIR ImageMagick_Magick++_LIBRARY - ImageMagick_MagickCore_INCLUDE_DIR ImageMagick_MagickCore_LIBRARY ImageMagick_MagickWand_INCLUDE_DIR ImageMagick_MagickWand_LIBRARY) - set(USE_MAGICK ${ImageMagick_FOUND}) - set(HAS_IMAGEMAGICK ${ImageMagick_FOUND}) - if(ImageMagick_FOUND) - find_program(MAGICKXXCONFIG Magick++-config) - if(MAGICKXXCONFIG) - execute_process(COMMAND ${MAGICKXXCONFIG} "--libs" OUTPUT_VARIABLE MAGICKXXCONFIGLIBS OUTPUT_STRIP_TRAILING_WHITESPACE) - set(LIBRARIES ${LIBRARIES} ${MAGICKXXCONFIGLIBS}) - execute_process(COMMAND ${MAGICKXXCONFIG} "--cxxflags" OUTPUT_VARIABLE MAGICKXXCONFIGCXXFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MAGICKXXCONFIGCXXFLAGS}") - else(MAGICKXXCONFIG) - message(FATAL_ERROR "ImageMagick is required but was not found (Magick++-config).\n" - "Use -DMAGICKDIR=DIR to specify the ImageMagick directory.\n" - "Use -DMAGICK=OFF to not use it.\n" - "(suitable Debian/Ubuntu package: libmagick++-dev)\n" - "(suitable Fedora/CentOS package: ImageMagick-c++-devel)") - endif(MAGICKXXCONFIG) - set(LIBRARIES ${LIBRARIES} ${ImageMagick_LIBRARIES}) - include_directories(${ImageMagick_INCLUDE_DIRS} ${ImageMagick_MagickCore_INCLUDE_DIRS}) - set(MAGICK_LIBRARIES ${ImageMagick_LIBRARIES}) - else(ImageMagick_FOUND) - message(FATAL_ERROR "ImageMagick is required but was not found.\n" - "Use -DMAGICKDIR=DIR to specify the ImageMagick directory.\n" - "Use -DMAGICK=OFF to not use it.\n" - "(suitable Debian/Ubuntu package: libmagick++-dev)\n" - "(suitable Fedora/CentOS package: ImageMagick-c++-devel)") - endif(ImageMagick_FOUND) + find_package(PkgConfig REQUIRED) + pkg_check_modules(Magick++ REQUIRED Magick++) + pkg_check_modules(MagickWand REQUIRED MagickWand) + pkg_check_modules(MagickCore REQUIRED MagickCore) + + set(MAGICK_LIBRARIES ${Magick++_LIBRARIES} ${MagickWand_LIBRARIES} ${MagickCore_LIBRARIES}) + set(LIBRARIES ${LIBRARIES} ${MAGICK_LIBRARIES}) + include_directories(${Magick++_INCLUDE_DIRS}) + include_directories(${MagickWand_INCLUDE_DIRS}) + include_directories(${MagickCore_INCLUDE_DIRS}) endif(MAGICK) # libtiff @@ -895,20 +877,8 @@ endif(GLPK) # -DSHAPELIB=ON|OFF # -DSHAPELIBDIR=DIR if(SHAPELIB) - set(CMAKE_PREFIX_PATH ${SHAPELIBDIR}) - find_package(SHAPELIB QUIET) - set(USE_SHAPELIB ${SHAPELIB_FOUND}) - if(SHAPELIB_FOUND) - set(LIBRARIES ${LIBRARIES} ${SHAPELIB_LIBRARIES}) - include_directories(${SHAPELIB_INCLUDE_DIR}) - else(SHAPELIB_FOUND) - message(FATAL_ERROR "SHAPELIB (http://shapelib.maptools.org/) is required but was not found.\n" - "Use -DSHAPELIBDIR=DIR to specify the SHAPELIB-devel directory tree.\n" - "Use -DSHAPELIB=OFF to not use it.\n" - "shapelib is often in package libshp-devel.\n" - "(suitable Debian/Ubuntu package: libshp-dev)\n" - "(suitable Fedora/CentOS package: shapelib-devel)\n") - endif(SHAPELIB_FOUND) + find_package(PkgConfig REQUIRED) + pkg_check_modules(shapelib REQUIRED shapelib) endif(SHAPELIB) # EXPAT for IDLffXMLSAX and IDLffXMLDOM # -DEXPAT=ON|OFF diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 968ead9d..b0623de4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -221,11 +221,11 @@ set_source_files_properties(libinit_cl.cpp PROPERTIES COMPILE_FLAGS -Wno-deprecated-declarations) #whereami add_library(whereami STATIC ${CMAKE_SOURCE_DIR}/src/whereami/src/whereami.c) -add_subdirectory(antlr) +find_library(ANTLR_LIBRARY NAMES antlr) add_subdirectory(plplot) add_subdirectory(dlm) -include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/antlr ${CMAKE_BINARY_DIR}/src ${CMAKE_SOURCE_DIR}/src/whereami/src ${CMAKE_BINARY_DIR}) +include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR}/src ${CMAKE_SOURCE_DIR}/src/whereami/src ${CMAKE_BINARY_DIR}) link_directories(${LINK_DIRECTORIES}) if(PYTHON_MODULE) #GDL.so @@ -249,8 +249,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") endif(USE_OPENMP) -add_dependencies(gdl plplot antlr whereami) # be sure that antlr is built before gdl -target_link_libraries(gdl plplot antlr whereami) # link antlr against gdl. added librt for mmap (unix only, not osx, apparently) +target_link_libraries(gdl plplot ${ANTLR_LIBRARY} whereami) # link antlr against gdl. added librt for mmap (unix only, not osx, apparently) if(TARGET Eigen3::Eigen) target_link_libraries(gdl Eigen3::Eigen) endif() --- a/src/dlm/CMakeLists.txt 2026-04-09 22:04:52.899683498 +0200 +++ b/src/dlm/CMakeLists.txt 2026-04-09 22:05:08.327507279 +0200 @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.10) ## if (NOT MINGW ) ## project(MyLittleProject VERSION 1.0.0 DESCRIPTION "loadable shared library providing command MYCOMMAND") ## set(CMAKE_SHARED_LIBRARY_PREFIX "") # prevent to prepend 'lib' to all .so names