#// Moshade - Compute average cross section for 3D shapes #// Copyright (C) 2017-2026 Eric Bechet, ... #// #// See the LICENSE file for license information and contributions. #// Please report all bugs and problems to . # The name of our project is "MOSHADE". CMakeLists files in this project can # refer to the root source directory of the project as ${MOSHADE_SOURCE_DIR} and # to the root binary directory of the project as ${MOSHADE_BINARY_DIR}. project(moshade) INCLUDE(CTest) ENABLE_TESTING() cmake_minimum_required (VERSION 3.10 FATAL_ERROR) find_package(OpenMP) if (OPENMP_FOUND) set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") endif() if(DEFINED CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Choose build type") else(DEFINED CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose build type") endif(DEFINED CMAKE_BUILD_TYPE) option(GRAPHICAL_INTERFACE "Enable Moshade graphical interface" OFF) if(GRAPHICAL_INTERFACE) set(MOSHADE_GRAPHICAL_INTERFACE ON) else(GRAPHICAL_INTERFACE) set(ENABLE_VTK_INTERFACE OFF CACHE BOOL "Enable VTK integration targets") set(ENABLE_FLTK_INTERFACE OFF CACHE BOOL "Enable FLTK integration targets") endif() IF(NOT TARGET nutil-dynamic AND NOT TARGET nutil-static AND NOT INSIDE_CADXFEM_TREE) add_subdirectory(nutil) endif() include_directories(. ${moshade_BINARY_DIR} ${NUTIL_INCLUDE_DIRECTORIES} ${NUTIL_EXTERNAL_INCLUDES}) set(MOSHADE_EXTERNAL_INCLUDES ${NUTIL_EXTERNAL_INCLUDES} ${NUTIL_INCLUDE_DIRECTORIES} CACHE STRING "MOSHADE External include directories") set(MOSHADE_EXTERNAL_LIBRARY_DIRS ${NUTIL_EXTERNAL_LIBRARY_DIRS} ${CMAKE_CURRENT_BINARY_DIR}/nutil CACHE STRING "MOSHADE External library dirs") set(MOSHADE_EXTERNAL_STATIC_LIBRARIES ${NUTIL_STATIC_LIBRARIES} CACHE STRING "MOSHADE External libraries dirs") set(MODHADE_EXTERNAL_DYNAMIC_LIBRARIES ${NUTIL_DYNAMIC_LIBRARIES} CACHE STRING "MOSHADE External libraries dirs") # include_directories(. ${moshade_BINARY_DIR} ) file(GLOB HEADERS *.h*) set(MOSHADE_API ${HEADERS}) file(GLOB SRC *.c*) set(MOSHADE_SRC ${SRC} ) set_source_files_properties(pia.c PROPERTIES COMPILE_FLAGS -std=c99) configure_file(moshadeconfig.h.in moshadeconfig.h) add_executable(moshade ${MOSHADE_SRC} ) target_link_libraries(moshade ${MODHADE_EXTERNAL_DYNAMIC_LIBRARIES} ) add_executable(moshade-static EXCLUDE_FROM_ALL ${MOSHADE_SRC}) target_link_libraries(moshade-static ${MODHADE_EXTERNAL_STATIC_LIBRARIES} ) SET_TARGET_PROPERTIES(moshade PROPERTIES OUTPUT_NAME "moshade") SET_TARGET_PROPERTIES(moshade-static PROPERTIES OUTPUT_NAME "moshade") ADD_TEST(NAME test_moshade WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND moshade "nonexistentfile.stl" "1") set_tests_properties(test_moshade PROPERTIES PASS_REGULAR_EXPRESSION "2\\.508816e\\+01 3\\.614023e\\+00 5\\.763329e\\+00 4\\.353069e\\+00 4") IF (UNIX) install(TARGETS moshade RUNTIME DESTINATION /usr/local/bin LIBRARY DESTINATION /usr/local/lib ARCHIVE DESTINATION /usr/local/lib) SET(CPACK_GENERATOR "DEB") SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Eric Bechet") #required endif() INCLUDE(CPack)