bugfix return ()
[libgpiv.git] / CMakeLists.txt
blob683492da54efd21144ce438fd24584a5bfb30cea
1 cmake_minimum_required( VERSION 2.6 )
2 project( libgpiv )
4 # set up custom cmake module path
5 set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake/Modules)
6 include(${CMAKE_SOURCE_DIR}/CMake/GpivUtilities.cmake)
8 set( CMAKE_VERBOSE_MAKEFILE on )
10 find_package( FFTW REQUIRED )
11 include_directories( ${FFTW_INCLUDE_DIRS} )
12 set( LIBS ${LIBS} ${FFTW_LIBRARIES} )
14 find_package( GSL )
16 find_package( HDF5 REQUIRED )
17 include_directories( ${HDF5_INCLUDE_DIRS} )
18 set( LIBS ${LIBS} ${HDF5_LIBRARIES} )
20 find_package( Glib REQUIRED )
21 include_directories( ${Glib_INCLUDE_DIRS} )
22 set( LIBS ${LIBS} ${Glib_LIBRARIES} )
24 find_package( PNG )
25 include_directories( ${PNG_INCLUDE_DIR} )
26 set( LIBS ${LIBS} ${PNG_LIBRARIES} )
28 # find_package( netpbm )
30 include_directories( ${MPI_INCLUDE_PATH} )
31 set( LIBS ${LIBS} ${MPI_LIBRARY} )
32 option( USE_MPI "Parallel processing on distributed memory systems" OFF )
33 if(USE_MPI)
34   add_definitions(-DENABLE_MPI)
35   find_package( MPI )
36 endif()
37 set(_PAR_ERROR
38   "ENABLE_@PKG@ is true, but @PKG@ cannot be found.\n"
39   "If you have @PKG@ installed on your system, edit the variables\n"
40   "@PKG@_INCLUDE_DIR and @PKG@_LIBRARY in the cache, else disable the\n"
41   "setting USE_@PKG@."
42   )
43 if(USE_MPI AND NOT MPI_FOUND)
44   string(REPLACE "@PKG@" "MPI" MPI_ERROR "${_PAR_ERROR}")
45   message(SEND_ERROR "${MPI_ERROR}")
46 endif()
48 option( USE_OMP "Multi-core parallel processing on shared memory systems" ON )
49 if(USE_OMP)
50   add_definitions(-DENABLE_OMP)
51   find_package( OpenMP REQUIRED )
52 endif()
54 option( USE_CAM "IEEE 1394 (Firewire) camera for recording" OFF )
55 if(USE_CAM)
56   add_definitions(-DENABLE_CAM)
57   find_package( Raw1394 REQUIRED )
58   find_package( Dc1394 REQUIRED )
59 endif()
61 option( USE_TRIG "Triggering of laser puls with camera. Needs RTAI-enabled kernel" OFF )
62 if(USE_TRIG)
63   add_definitions(-DENABLE_TRIG)
64 endif()
66 # check_include_files( fftw.h hdf5.h )
68 #file (GLOB SRC lib/*.c)
69 # or:
70 include( files.cmake )
72 # message ("src dir = ${PROJECT_SOURCE_DIR}" )
73 include_directories( ${PROJECT_SOURCE_DIR}/include )
74 add_library( gpiv SHARED ${SRC} )
75 target_link_libraries( gpiv ${LIBS} )
77 install_targets(/lib gpiv )
78 ## file (GLOB MAIN_HDR include/*.h include/gpiv/*.h)
79 install (FILES include/gpiv.h DESTINATION include)
80 file (GLOB HDRS include/gpiv/*.h)
81 install (FILES ${HDRS} DESTINATION include/gpiv)
84 # API documentation
85 option(ENABLE_DOXYGEN_DOCS "Doxygen API documentation" OFF)
86 doxygen_format (HTML ON )
87 doxygen_format (XML OFF )
88 doxygen_format (LATEX OFF )
89 if(ENABLE_DOXYGEN_DOCS)
90   find_package(Doxygen)
91   if(DOXYGEN_FOUND)
92     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
93     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen_header.html.in ${CMAKE_CURRENT_BINARY_DIR}/doxygen_header.html @ONLY)
94     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen_footer.html.in ${CMAKE_CURRENT_BINARY_DIR}/doxygen_footer.html @ONLY)
95     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen_stylesheet.css.in ${CMAKE_CURRENT_BINARY_DIR}/doxygen_stylesheet.css @ONLY)
96     add_custom_target(doc
97       ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
98       WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
99       COMMENT "Generating API documentation with Doxygen" VERBATIM
100       )
101   endif(DOXYGEN_FOUND)
102 endif(ENABLE_DOXYGEN_DOCS)
105 # uninstall target
106 configure_file(
107   "${CMAKE_SOURCE_DIR}/CMake/Modules/cmake_uninstall.cmake.in"
108   "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake"
109   @ONLY
110   )
112 add_custom_target(uninstall
113   "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake"
114   )