]> ruin.nu Git - germs.git/blob - src/CMakeLists.txt
Check for TR1 or Boost
[germs.git] / src / CMakeLists.txt
1 INCLUDE(CheckIncludeFile)
2 INCLUDE(CheckIncludeFileCXX)
3
4 SET(CMAKE_VERBOSE_MAKEFILE OFF)
5
6 #ADD_DEFINITIONS(-Wall -O2)
7
8 #ADD_DEFINITIONS(-Wall -pedantic -g -D_GLIBCXX_DEBUG)
9 ADD_DEFINITIONS(-Wall -pedantic -g)
10
11 #INCLUDE(CheckCXXSourceCompiles)
12
13 INCLUDE_DIRECTORIES(.)
14 ADD_LIBRARY(GeneSort geneorder genealgorithms modelidentifier genesorter model
15         models componenttree)
16
17 ADD_EXECUTABLE(germs main.cpp)
18
19 CHECK_INCLUDE_FILE("doublefann.h" HAVE_FANN)
20
21 IF (HAVE_FANN)
22         SET(GENELIBS doublefann GeneSort)
23 ELSE(HAVE_FANN)
24         INCLUDE_DIRECTORIES(. ${CMAKE_SOURCE_DIR}/fann/src/include)
25         ADD_LIBRARY(doublefann ${CMAKE_SOURCE_DIR}/fann/src/doublefann.c)
26         TARGET_LINK_LIBRARIES(GeneSort doublefann)
27         SET(GENELIBS GeneSort)
28 ENDIF(HAVE_FANN)
29
30
31 CHECK_INCLUDE_FILE_CXX("tr1/memory" HAVE_TR1)
32
33 IF(HAVE_TR1)
34         ADD_DEFINITIONS(-DHAVE_TR1)
35 ELSE(HAVE_TR1)
36         CHECK_INCLUDE_FILE_CXX("boost/shared_ptr.hpp" HAVE_BOOST)
37         IF(NOT HAVE_BOOST)
38                 MESSAGE(FATAL_ERROR "Neither Boost nor TR1 found, need a shared_ptr implementation")
39         ENDIF(NOT HAVE_BOOST)
40 ENDIF(HAVE_TR1)
41
42 TARGET_LINK_LIBRARIES(germs ${GENELIBS})
43
44 SUBDIRS(test)