22# APR - Adaptive Particle Representation
33###############################################################################
44cmake_minimum_required (VERSION 3.2)
5- project (LibAPR)
5+ project (LibAPR DESCRIPTION "Adaptive Particle Representation library" )
6+
67set (CMAKE_CXX_STANDARD 14)
78
89# APR build options:
@@ -19,6 +20,7 @@ if (NOT APR_BUILD_SHARED_LIB AND NOT APR_BUILD_STATIC_LIB)
1920 message (FATAL_ERROR "At least one target: APR_BUILD_SHARED_LIB or APR_BUILD_STATIC_LIB must be build!" )
2021endif ()
2122
23+
2224###############################################################################
2325# Generate configuration file
2426###############################################################################
@@ -37,6 +39,7 @@ configure_file (
3739include_directories ("${PROJECT_BINARY_DIR} " )
3840message ("Configuring for APR version: " ${APR_VERSION_STRING} )
3941
42+
4043###############################################################################
4144# Find all required libraries
4245###############################################################################
@@ -96,10 +99,12 @@ set(LIBRARY_NAME apr)
9699set (SOURCE_FILES src/io/blosc_filter.c src/io/hdf5functions_blosc.cpp)
97100set (SOURCE_FILES_RAYCAST src/numerics/APRRaycaster.cpp src/vis/Camera.cpp src/vis/Object.cpp src/vis/RaytracedObject.cpp)
98101
102+ add_library (aprObjLib OBJECT ${SOURCE_FILES} ${SOURCE_FILES_RAYCAST} )
103+
99104if (APR_BUILD_STATIC_LIB)
100105 # generate static library used as a intermediate step in generating fat lib
101106 set (STATIC_TARGET_NAME staticLib)
102- add_library (${STATIC_TARGET_NAME} STATIC ${SOURCE_FILES} ${SOURCE_FILES_RAYCAST} )
107+ add_library (${STATIC_TARGET_NAME} STATIC $<TARGET_OBJECTS:aprObjLib> )
103108 set_target_properties (${STATIC_TARGET_NAME} PROPERTIES OUTPUT_NAME ${LIBRARY_NAME} )
104109
105110 # generate fat static library by adding dependencies
@@ -110,7 +115,7 @@ endif()
110115if (APR_BUILD_SHARED_LIB)
111116# generate fat shared library
112117 set (SHARED_TARGET_NAME sharedLib)
113- add_library (${SHARED_TARGET_NAME} SHARED ${SOURCE_FILES} ${SOURCE_FILES_RAYCAST} )
118+ add_library (${SHARED_TARGET_NAME} SHARED $<TARGET_OBJECTS:aprObjLib> )
114119 set_target_properties (${SHARED_TARGET_NAME} PROPERTIES OUTPUT_NAME ${LIBRARY_NAME} )
115120 set_target_properties (${SHARED_TARGET_NAME} PROPERTIES LIBRARY_OUTPUT_NAME ${LIBRARY_NAME} )
116121 set_target_properties (${SHARED_TARGET_NAME} PROPERTIES ARCHIVE_OUTPUT_NAME ${LIBRARY_NAME} )
0 commit comments