X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=src%2FCMakeLists.txt;h=6b5217e9497e5abd6cd2e4e3a93d5a02a608841b;hb=6b0585c4c6aa12aad13965d5f17be9a4a51653b5;hp=642ef504ef394723e6c6ee9d9c143b6c0906c673;hpb=40d817fd1c0ec184927450858ca95b722ae8acba;p=germs.git diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 642ef50..6b5217e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,31 +1,48 @@ INCLUDE(CheckIncludeFile) +INCLUDE(CheckIncludeFileCXX) SET(CMAKE_VERBOSE_MAKEFILE OFF) -#ADD_DEFINITIONS(-Wall -O2) +#ADD_DEFINITIONS(-Wall -O2 -D__GTHREADS -D_REENTRANT +# -D_POSIX_PTHREAD_SEMANTICS -pthread) #ADD_DEFINITIONS(-Wall -pedantic -g -D_GLIBCXX_DEBUG) -ADD_DEFINITIONS(-Wall -pedantic -g) +ADD_DEFINITIONS(-Wall -pedantic -g -D__GTHREADS -D_REENTRANT + -D_POSIX_PTHREAD_SEMANTICS -pthread) #INCLUDE(CheckCXXSourceCompiles) INCLUDE_DIRECTORIES(.) ADD_LIBRARY(GeneSort geneorder genealgorithms modelidentifier genesorter model - models componenttree) + models componenttree threadgenesorter) ADD_EXECUTABLE(germs main.cpp) +FIND_PACKAGE(Threads REQUIRED) CHECK_INCLUDE_FILE("doublefann.h" HAVE_FANN) +SET(GENELIBS GeneSort ${CMAKE_THREAD_LIBS_INIT}) IF (HAVE_FANN) - SET(GENELIBS doublefann GeneSort) + LIST(APPEND GENELIBS doublefann) 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) + +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(germs ${GENELIBS}) + SUBDIRS(test)