# This file is part of the Neper software package. # Copyright (C) 2003-2015, Romain Quey. # See the COPYING file in the top-level directory. cmake_minimum_required(VERSION 2.8) set (NEPER_T_SOURCE_DIR "${PROJECT_SOURCE_DIR}/src/neper/neper_t") set (NEPER_T_BINARY_DIR "${PROJECT_BINARY_DIR}/src/neper/neper_t") option (HAVE_GSL "Use the GNU Scientific Library (GSL)" ON ) option (HAVE_LIBMATHEVAL "Use libmatheval" ON ) option (HAVE_LIBSCOTCH "Use libscotch" OFF) option (HAVE_OPTIMIZATION "Enable optimization (ON for production use)" ON) option (HAVE_DEBUGGING "Enable debugging (OFF for production use)" OFF) option (HAVE_PROFILING "Enable profiling (OFF for production use)" OFF) include_directories("${PROJECT_BINARY_DIR}/src/neper") include_directories("${PROJECT_BINARY_DIR}/src/neper/contrib/ann") include_directories("${PROJECT_SOURCE_DIR}/src/neper/contrib/ann") add_definitions(-Wall -W -g) if (HAVE_OPTIMIZATION) add_definitions(-O3) endif () if (HAVE_DEBUGGING) add_definitions(-Werror) endif () if (HAVE_PROFILING) add_definitions(-pg) set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") endif () add_library (neper_t ./net_reg/net_reg_merge/net_reg_merge2.c ./net_reg/net_reg_merge/net_reg_merge1.c ./net_reg/net_reg_merge/net_reg_merge_del/net_reg_merge_del1.c ./net_reg/net_reg_merge/net_reg_merge_del/net_reg_merge_del2.c ./net_reg/net_reg_merge/net_reg_merge_del/net_reg_merge_del_ff/net_reg_merge_del_ff2.c ./net_reg/net_reg_merge/net_reg_merge_del/net_reg_merge_del_ff/net_reg_merge_del_ff1.c ./net_reg/net_reg_merge/net_reg_merge_del/net_reg_merge_del3.c ./net_reg/net_reg_merge/net_reg_merge_del/net_reg_merge_del5.c ./net_reg/net_reg_merge/net_reg_merge_del/net_reg_merge_del4.c ./net_reg/net_reg1.c ./net_reg/net_reg2.c ./net_tesr/net_tesr1.c ./net_tesr/net_tesr2.c ./net_tesr/net_tesr_vor/net_tesr_vor1.c ./net_tesr/net_tesr_vor/net_tesr_vor2.c ./net_utils/net_utils1.c ./net_utils/net_polymod_poly/net_polymod_poly1.c ./net_utils/net_polymod_poly/net_polymod_poly2.c ./net_utils/net_polymod_poly/net_polymod_poly3.c ./net_utils/net_legacy/net_legacy.c ./net_tess/net_tess1.c ./net_tess/net_tess2.c ./net_tess/net_tess3.c ./net_tess/net_tess_cube/net_tess_cube1.c ./net_tess/net_tess_cube/net_tess_cube2.c ./net_tess/net_tess1d/net_tess1d.c ./net_tess/net_tess2d/net_tess2d.c ./net_tess/net_tess3d/net_tess3d.c ./net_tess/net_tess3d/net_tesl/net_tesl2.c ./net_tess/net_tess3d/net_tesl/net_tesl4.c ./net_tess/net_tess3d/net_tesl/net_tesl5.c ./net_tess/net_tess3d/net_tesl/net_tesl1.c ./net_tess/net_tess3d/net_tesl/net_tesl6.c ./net_tess/net_tess3d/net_tesl/net_tesl3.c ./net_tess/net_tess3d/net_polycomp/net_polycomp1.cpp ./net_tess/net_tess3d/net_polycomp/net_polycomp2.cpp ./net_tess/net_tess3d/net_polycomp/net_polycomp3.c ./net_tess/net_tess3d/net_polycomp/net_polycomp4.c ./net_tess/net_tess3d/net_polycomp/net_polycomp5.c ./net_tess/net_tess3d/net_polycomp/net_polycomp6.c ./net_tess/net_tess3d/net_polycomp/net_polycomp7.c ./net_tess/net_tess1d/net_tess1d.c ./net_domain/net_domain1.c ./net_domain/net_domain2.c ./net_domain/net_domain_cube/net_domain_cube2.c ./net_domain/net_domain_cube/net_domain_cube1.c ./net_domain/net_domain_cube/net_domain_cube3.c ./net_domain/net_domain_segment/net_domain_segment1.c ) set (EXTRA_LIBS ${EXTRA_LIBS} neut) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/src/neper/cmake ${CMAKE_MODULE_PATH}) find_library (MATHLIB m) if (MATHLIB) set (EXTRA_LIBS ${EXTRA_LIBS} ${MATHLIB}) endif () if (HAVE_LIBMATHEVAL) find_package (LIBMATHEVAL REQUIRED) if (Matheval_LIBRARIES) set (EXTRA_LIBS ${EXTRA_LIBS} ${Matheval_LIBRARIES}) include_directories (${Matheval_INCLUDE_DIRS}) endif () endif () if (HAVE_GSL) find_package(GSL REQUIRED) set (EXTRA_LIBS ${EXTRA_LIBS} ${GSL_LIBRARIES}) include_directories(${GSL_INCLUDE_DIRS}) endif () if (HAVE_LIBSCOTCH) find_package (LIBSCOTCH REQUIRED) set (EXTRA_LIBS ${EXTRA_LIBS} ${Scotch_LIBRARIES}) include_directories (${Scotch_INCLUDE_DIRS}) endif () target_link_libraries (neper_t ${EXTRA_LIBS})