-PROJECT(GeneSort)
+INCLUDE(CheckIncludeFile)
+INCLUDE(CheckIncludeFileCXX)
SET(CMAKE_VERBOSE_MAKEFILE OFF)
-ADD_DEFINITIONS(-Wall -g)
+#ADD_DEFINITIONS(-Wall -O2)
+
+#ADD_DEFINITIONS(-Wall -pedantic -g -D_GLIBCXX_DEBUG)
+ADD_DEFINITIONS(-Wall -pedantic -g)
+
+#INCLUDE(CheckCXXSourceCompiles)
INCLUDE_DIRECTORIES(.)
-ADD_LIBRARY(GeneSort geneorder genealgorithms modelidentifier)
-ADD_EXECUTABLE(genesort main.cpp)
+ADD_LIBRARY(GeneSort geneorder genealgorithms modelidentifier genesorter model
+ models componenttree)
+
+ADD_EXECUTABLE(germs main.cpp)
+
+CHECK_INCLUDE_FILE("doublefann.h" HAVE_FANN)
+
+IF (HAVE_FANN)
+ SET(GENELIBS doublefann GeneSort)
+ELSE(HAVE_FANN)
+ INCLUDE_DIRECTORIES(. ${CMAKE_SOURCE_DIR}/fann/src/include)
+ ADD_LIBRARY(doublefann ${CMAKE_SOURCE_DIR}/fann/src/doublefann.c)
+ TARGET_LINK_LIBRARIES(GeneSort doublefann)
+ SET(GENELIBS GeneSort)
+ENDIF(HAVE_FANN)
+
+
+CHECK_INCLUDE_FILE_CXX("tr1/memory" HAVE_TR1)
-SET(GENELIBS doublefann GeneSort)
+IF(HAVE_TR1)
+ ADD_DEFINITIONS(-DHAVE_TR1)
+ELSE(HAVE_TR1)
+ CHECK_INCLUDE_FILE_CXX("boost/shared_ptr.hpp" HAVE_BOOST)
+ IF(NOT HAVE_BOOST)
+ MESSAGE(FATAL_ERROR "Neither Boost nor TR1 found, need a shared_ptr implementation")
+ ENDIF(NOT HAVE_BOOST)
+ENDIF(HAVE_TR1)
-TARGET_LINK_LIBRARIES(genesort ${GENELIBS})
+TARGET_LINK_LIBRARIES(germs ${GENELIBS})
SUBDIRS(test)