]> https://gitweb.dealii.org/ - code-gallery.git/commitdiff
Ceres: Fix CMakeLists.txt, add libconfig dependency
authorMatthias Maier <tamiko@43-1.org>
Thu, 10 May 2018 11:38:04 +0000 (06:38 -0500)
committerMatthias Maier <tamiko@43-1.org>
Thu, 10 May 2018 22:25:36 +0000 (17:25 -0500)
CeresFE/CMakeLists.txt

index ba7a89bd6cb70e9aa9f6b3df29ac55d236e59c3e..966b8433bfc0712c9263914a5571da0efafada79 100644 (file)
@@ -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})
+

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.