CMakeLists.txt 3.08 KB
Newer Older
Mike Kremer's avatar
Mike Kremer committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
include (ACGCommon)

include_directories (
  ..
  ${CMAKE_CURRENT_SOURCE_DIR}
)

# source code directories
set (directories 
  . 
  OpenVolumeMesh
  OpenVolumeMesh/Utils
  OpenHexMesh
  OpenHexMesh/Utils
)

# collect all header and source files
acg_append_files (headers "*.hh" ${directories})
acg_append_files (sources "*.cc" ${directories})

# Disable Library installation when not building OpenVolumeMesh on its own but as part of another project!
if ( NOT ${PROJECT_NAME} MATCHES "OpenVolumeMesh")
  set(ACG_NO_LIBRARY_INSTALL true)
endif()


if (WIN32)
  # OpenVolumeMesh has no dll exports so we have to build a static library on windows
  acg_add_library (OpenVolumeMesh STATIC ${sources} ${headers})
else ()
    acg_add_library (OpenVolumeMesh SHAREDANDSTATIC ${sources} ${headers})
    set_target_properties (OpenVolumeMesh PROPERTIES VERSION ${OPENVOLUMEMESH_VERSION_MAJOR}.${OPENVOLUMEMESH_VERSION_MINOR}
                                               SOVERSION ${OPENVOLUMEMESH_VERSION_MAJOR}.${OPENVOLUMEMESH_VERSION_MINOR} )

endif ()

if ( ${PROJECT_NAME} MATCHES "OpenVolumeMesh")
  # Add core as dependency before fixbundle 
  if ( WIN32 OR APPLE)
    # let bundle generation depend on targets
    add_dependencies (fixbundle OpenVolumeMesh)
  endif ()
endif()


# Install Header Files (Apple)
if ( NOT ACG_PROJECT_MACOS_BUNDLE AND APPLE )
    FILE(GLOB files_install_OVM         "${CMAKE_CURRENT_SOURCE_DIR}/OpenVolumeMesh/*.hh"  "${CMAKE_CURRENT_SOURCE_DIR}/OpenVolumeMesh/*T.cc" )
    FILE(GLOB files_install_OVM_Utils   "${CMAKE_CURRENT_SOURCE_DIR}/OpenVolumeMesh/Utils/*.hh"  "${CMAKE_CURRENT_SOURCE_DIR}/OpenVolumeMesh/Utils/*T.cc" )
    FILE(GLOB files_install_OHM         "${CMAKE_CURRENT_SOURCE_DIR}/OpenHexMesh/*.hh"  "${CMAKE_CURRENT_SOURCE_DIR}/OpenHexMesh/*T.cc" )
    FILE(GLOB files_install_OHM_Utils   "${CMAKE_CURRENT_SOURCE_DIR}/OpenHexMesh/Utils/*.hh"  "${CMAKE_CURRENT_SOURCE_DIR}/OpenHexMesh/Utils/*T.cc" )
    INSTALL(FILES ${files_install_OVM}          DESTINATION include/OpenVolumeMesh/OpenVolumeMesh )
    INSTALL(FILES ${files_install_OVM_Utils}    DESTINATION include/OpenVolumeMesh/OpenVolumeMesh/Utils )
    INSTALL(FILES ${files_install_OHM}          DESTINATION include/OpenVolumeMesh/OpenHexMesh )
    INSTALL(FILES ${files_install_OHM_Utils}    DESTINATION include/OpenVolumeMesh/OpenHexMesh/Utils )
endif()


# Only install if the project name matches OpenVolumeMesh.
if (NOT APPLE AND ${PROJECT_NAME} MATCHES "OpenVolumeMesh")

# Install Header Files)
install(DIRECTORY . 
	DESTINATION include/OpenVolumeMesh
        FILES_MATCHING 
	PATTERN "*.hh"
        PATTERN "CVS" EXCLUDE
        PATTERN ".svn" EXCLUDE
        PATTERN "tmp" EXCLUDE
	PATTERN "Templates" EXCLUDE
        PATTERN "Debian*" EXCLUDE)

#install Template cc files (required by headers)
install(DIRECTORY . 
	DESTINATION include/OpenVolumeMesh
        FILES_MATCHING 
	PATTERN "*T.cc"
        PATTERN "CVS" EXCLUDE
        PATTERN ".svn" EXCLUDE
	PATTERN "tmp" EXCLUDE
	PATTERN "Templates" EXCLUDE
        PATTERN "Debian*" EXCLUDE)

endif ()