From c7ebbc713f692319ec37dbdd9e9fa22dbc58068e Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Thu, 10 May 2018 06:38:04 -0500 Subject: [PATCH] Ceres: Fix CMakeLists.txt, add libconfig dependency --- CeresFE/CMakeLists.txt | 66 ++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/CeresFE/CMakeLists.txt b/CeresFE/CMakeLists.txt index ba7a89b..966b843 100644 --- a/CeresFE/CMakeLists.txt +++ b/CeresFE/CMakeLists.txt @@ -2,41 +2,33 @@ # CMake script for the CeresFE program: ## -# Set the name of the project and target: -SET(TARGET "src/ceres") - -# Declare all source files the target consists of. Here, this is only -# the one step-X.cc file, but as you expand your project you may wish -# to add other source files as well. If your project becomes much larger, -# you may want to either replace the following statement by something like -# FILE(GLOB_RECURSE TARGET_SRC "source/*.cc") -# FILE(GLOB_RECURSE TARGET_INC "include/*.h") -# SET(TARGET_SRC ${TARGET_SRC} ${TARGET_INC}) -# or switch altogether to the large project CMakeLists.txt file discussed -# in the "CMake in user projects" page accessible from the "User info" -# page of the documentation. -SET(TARGET_SRC - ${TARGET}.cc +CMAKE_MINIMUM_REQUIRED(VERSION 3.0.2) + +FIND_PACKAGE(deal.II 8.3 REQUIRED + HINTS ${deal.II_DIR} ${DEAL_II_DIR} ../ ../../ $ENV{DEAL_II_DIR} ) -# Usually, you will not need to modify anything beyond this point... +DEAL_II_INITIALIZE_CACHED_VARIABLES() +PROJECT("ceres") -CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8) +# +# Find libconfig: +# -FIND_PACKAGE(deal.II 8.3 QUIET - HINTS ${deal.II_DIR} ${DEAL_II_DIR} ../ ../../ $ENV{DEAL_II_DIR} +FIND_PATH(LIBCONFIG_INCLUDE_DIR libconfig.h++ + HINTS ${LIBCONFIG_DIR} + PATH_SUFFIXES include + ) + +FIND_LIBRARY(LIBCONFIG_LIBRARY NAMES config++ + HINTS ${LIBCONFIG_DIR} + PATH_SUFFIXES lib${LIB_SUFFIX} lib64 lib ) -IF(NOT ${deal.II_FOUND}) - MESSAGE(FATAL_ERROR "\n" - "*** Could not locate a (sufficiently recent) version of deal.II. ***\n\n" - "You may want to either pass a flag -DDEAL_II_DIR=/path/to/deal.II to cmake\n" - "or set an environment variable \"DEAL_II_DIR\" that contains this path." - ) -ENDIF() # # Are all dependencies fullfilled? # + IF(NOT DEAL_II_WITH_UMFPACK) MESSAGE(FATAL_ERROR " Error! The deal.II library found at ${DEAL_II_PATH} was not configured with @@ -45,6 +37,24 @@ One or all of these are OFF in your installation but are required for this tutor ) ENDIF() -DEAL_II_INITIALIZE_CACHED_VARIABLES() -PROJECT(${TARGET}) + +IF(${LIBCONFIG_INCLUDE_DIR} MATCHES "-NOTFOUND" OR ${LIBCONFIG_LIBRARY} MATCHES "-NOTFOUND") + MESSAGE(FATAL_ERROR "\n" + "*** Could not locate libconfig ***\n\n" + "This code gallery program requires libconfig, " + "http://www.hyperrealm.com/libconfig/libconfig.html.\n" + "Please install it either by hand, or with your favorite package manager" + ) +ENDIF() + +# +# Set up program: +# + +SET(TARGET "ceres") +SET(TARGET_SRC src/${TARGET}.cc) DEAL_II_INVOKE_AUTOPILOT() + +TARGET_INCLUDE_DIRECTORIES(${TARGET} PUBLIC ${LIBCONFIG_INCLUDE_DIR}) +TARGET_LINK_LIBRARIES(${TARGET} ${LIBCONFIG_LIBRARY}) + -- 2.39.5