cmake_minimum_required(VERSION 3.10 FATAL_ERROR) project(nutil) include_directories(.) add_library (nutil-dynamic SHARED nutil.cc npoint.cc ndata.cc linear_algebra.cpp sparse_matrix.cpp ) add_library (nutil-static STATIC EXCLUDE_FROM_ALL nutil.cc npoint.cc ndata.cc linear_algebra.cpp sparse_matrix.cpp ) SET_TARGET_PROPERTIES(nutil-static PROPERTIES OUTPUT_NAME "nutil") SET_TARGET_PROPERTIES(nutil-dynamic PROPERTIES OUTPUT_NAME "nutil") option(ENABLE_VTK_INTERFACE "Enable VTK integration targets" ON) option(ENABLE_FLTK_INTERFACE "Enable FLTK integration targets" OFF) set(INTERFACE_TYPE "VTK" CACHE "Interface Type" STRING) include_directories(.) if(ENABLE_VTK_INTERFACE) include_directories(. ${nutil_BINARY_DIR} vtkdisplay) add_subdirectory(vtkdisplay) endif(ENABLE_VTK_INTERFACE) if(ENABLE_FLTK_INTERFACE) include_directories(. ${nutil_BINARY_DIR} fltkdisplay) add_subdirectory(fltkdisplay) endif(ENABLE_FLTK_INTERFACE) if(ENABLE_FLTK_INTERFACE OR ENABLE_VTK_INTERFACE) include_directories(. ${nutil_BINARY_DIR} ndisplay) add_subdirectory(ndisplay) if (INTERFACE_TYPE STREQUAL VTK) set(INTERFACE_TYPE_VTK ON) set(NUTIL_DYNAMIC_LIBRARIES nutil-dynamic vtkdisplay-dynamic ndisplay-dynamic CACHE INTERNAL "nutil dynamic libraries" FORCE) set(NUTIL_STATIC_LIBRARIES nutil-static vtkdisplay-static ndisplay-static CACHE INTERNAL "nutil static libraries" FORCE) set(NUTIL_INCLUDE_DIRECTORIES ${nutil_SOURCE_DIR} ${nutil_SOURCE_DIR}/ndisplay ${nutil_BINARY_DIR} ${nutil_SOURCE_DIR}/vtkdisplay CACHE INTERNAL "nutil include dirs" FORCE) endif(INTERFACE_TYPE STREQUAL VTK) if (INTERFACE_TYPE STREQUAL FLTK) set(INTERFACE_TYPE_FLTK ON) set(NUTIL_DYNAMIC_LIBRARIES nutil-dynamic fltkdisplay-dynamic ndisplay-dynamic CACHE INTERNAL "nutil dynamic libraries" FORCE) set(NUTIL_STATIC_LIBRARIES nutil-static fltkdisplay-static ndisplay-static CACHE INTERNAL "nutil static libraries" FORCE) set(NUTIL_INCLUDE_DIRECTORIES ${nutil_SOURCE_DIR} ${nutil_SOURCE_DIR}/ndisplay ${nutil_BINARY_DIR} ${nutil_SOURCE_DIR}/fltkdisplay CACHE INTERNAL "nutil include dirs" FORCE) endif(INTERFACE_TYPE STREQUAL FLTK) endif(ENABLE_FLTK_INTERFACE OR ENABLE_VTK_INTERFACE) configure_file(nutilconfig.h.in nutilconfig.h) add_subdirectory(test)