-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Allow building against system libs instead of bundled dependencies
When DIP_BUILD_BUNDLED_DEPENDENCIES=OFF is passed to cmake, we will rely on find_package to find Eigen3, zlib, jpeg, ics and tiff libraries. The fftw_api.h header will always be used, as it's not public API that's included in the fftw3 package on ArchLinux e.g. The default for this option is still ON, i.e. this is an opt-in feature. Change-Id: I4ed9095eefbfd889642d1c3d42b3d9af0dfc15ae
- Loading branch information
Showing
7 changed files
with
189 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
# - Try to find Eigen3 lib | ||
# | ||
# This module supports requiring a minimum version, e.g. you can do | ||
# find_package(Eigen3 3.1.2) | ||
# to require version 3.1.2 or newer of Eigen3. | ||
# | ||
# Once done this will define | ||
# | ||
# EIGEN3_FOUND - system has eigen lib with correct version | ||
# EIGEN3_INCLUDE_DIR - the eigen include directory | ||
# EIGEN3_VERSION - eigen version | ||
|
||
# Copyright (c) 2006, 2007 Montel Laurent, <[email protected]> | ||
# Copyright (c) 2008, 2009 Gael Guennebaud, <[email protected]> | ||
# Copyright (c) 2009 Benoit Jacob <[email protected]> | ||
# Redistribution and use is allowed according to the terms of the 2-clause BSD license. | ||
|
||
if(NOT Eigen3_FIND_VERSION) | ||
if(NOT Eigen3_FIND_VERSION_MAJOR) | ||
set(Eigen3_FIND_VERSION_MAJOR 2) | ||
endif(NOT Eigen3_FIND_VERSION_MAJOR) | ||
if(NOT Eigen3_FIND_VERSION_MINOR) | ||
set(Eigen3_FIND_VERSION_MINOR 91) | ||
endif(NOT Eigen3_FIND_VERSION_MINOR) | ||
if(NOT Eigen3_FIND_VERSION_PATCH) | ||
set(Eigen3_FIND_VERSION_PATCH 0) | ||
endif(NOT Eigen3_FIND_VERSION_PATCH) | ||
|
||
set(Eigen3_FIND_VERSION | ||
"${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") | ||
endif(NOT Eigen3_FIND_VERSION) | ||
|
||
macro(_eigen3_check_version) | ||
file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) | ||
|
||
string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match | ||
"${_eigen3_version_header}") | ||
set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") | ||
string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match | ||
"${_eigen3_version_header}") | ||
set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") | ||
string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match | ||
"${_eigen3_version_header}") | ||
set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") | ||
|
||
set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) | ||
if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) | ||
set(EIGEN3_VERSION_OK FALSE) | ||
else(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) | ||
set(EIGEN3_VERSION_OK TRUE) | ||
endif(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) | ||
|
||
if(NOT EIGEN3_VERSION_OK) | ||
|
||
message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, " | ||
"but at least version ${Eigen3_FIND_VERSION} is required") | ||
endif(NOT EIGEN3_VERSION_OK) | ||
endmacro(_eigen3_check_version) | ||
|
||
if(EIGEN3_INCLUDE_DIR) | ||
|
||
# in cache already | ||
_eigen3_check_version() | ||
set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) | ||
|
||
else(EIGEN3_INCLUDE_DIR) | ||
|
||
find_path( | ||
EIGEN3_INCLUDE_DIR | ||
NAMES signature_of_eigen3_matrix_library | ||
PATHS ${CMAKE_INSTALL_PREFIX}/include ${KDE4_INCLUDE_DIR} | ||
PATH_SUFFIXES eigen3 eigen) | ||
|
||
if(EIGEN3_INCLUDE_DIR) | ||
_eigen3_check_version() | ||
endif(EIGEN3_INCLUDE_DIR) | ||
|
||
include(FindPackageHandleStandardArgs) | ||
find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) | ||
|
||
mark_as_advanced(EIGEN3_INCLUDE_DIR) | ||
|
||
endif(EIGEN3_INCLUDE_DIR) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# Copyright (C) 2021 LuaDist. | ||
# Created by Peter Kapec <[email protected]> | ||
# Modified by Cris Luengo to look for GLFW instead of FreeGLUT, and set a target. | ||
# Modified by Milian Wolff to look for ICS instead of GLFW, and set a target. | ||
# Redistribution and use of this file is allowed according to the terms of the MIT license. | ||
# For details see the COPYRIGHT file distributed with LuaDist. | ||
# Note: | ||
# Searching headers and libraries is very simple and is NOT as powerful as scripts | ||
# distributed with CMake, because LuaDist defines directories to search for. | ||
# Everyone is encouraged to contact the author with improvements. Maybe this file | ||
# becomes part of CMake distribution sometime. | ||
|
||
# - Find ICS | ||
# Find the native ICS headers and libraries. | ||
# | ||
# ICS_INCLUDE_DIRS - where to find libics.h | ||
# ICS_LIBRARIES - List of libraries when using ICS. | ||
# ICS_FOUND - True if ICS found. | ||
# ICS::ICS - Target to link to (automatically sets include directories and linked libraries) | ||
|
||
# Look for the header file. | ||
find_path(ICS_INCLUDE_DIR NAMES libics.h) | ||
|
||
# Look for the library. | ||
find_library(ICS_LIBRARY NAMES ics) | ||
|
||
# Handle the QUIETLY and REQUIRED arguments and set ICS_FOUND to TRUE if all listed variables are TRUE. | ||
include(FindPackageHandleStandardArgs) | ||
find_package_handle_standard_args(ICS DEFAULT_MSG ICS_LIBRARY ICS_INCLUDE_DIR) | ||
|
||
# Copy the results to the output variables. | ||
if(ICS_FOUND) | ||
set(ICS_LIBRARIES ${ICS_LIBRARY}) | ||
set(ICS_INCLUDE_DIRS ${ICS_INCLUDE_DIR}) | ||
if (NOT TARGET ICS::ICS) | ||
add_library(ICS::ICS UNKNOWN IMPORTED) | ||
set_target_properties(ICS::ICS PROPERTIES | ||
INTERFACE_INCLUDE_DIRECTORIES "${ICS_INCLUDE_DIRS}" | ||
IMPORTED_LOCATION "${ICS_LIBRARY}") | ||
endif() | ||
message(STATUS "ICS found: ${ICS_LIBRARY} -- ${ICS_INCLUDE_DIR}") | ||
else() | ||
set(ICS_LIBRARIES) | ||
set(ICS_INCLUDE_DIRS) | ||
message(STATUS "ICS not found") | ||
endif() | ||
|
||
mark_as_advanced(ICS_INCLUDE_DIRS ICS_LIBRARIES) |