Skip to content

Commit 2c9a2fb

Browse files
committed
Added object library for speeding up compilation
1 parent fb52ec6 commit 2c9a2fb

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

CMakeLists.txt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
# APR - Adaptive Particle Representation
33
###############################################################################
44
cmake_minimum_required(VERSION 3.2)
5-
project(LibAPR)
5+
project(LibAPR DESCRIPTION "Adaptive Particle Representation library")
6+
67
set(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!")
2021
endif()
2122

23+
2224
###############################################################################
2325
# Generate configuration file
2426
###############################################################################
@@ -37,6 +39,7 @@ configure_file (
3739
include_directories("${PROJECT_BINARY_DIR}")
3840
message("Configuring for APR version: " ${APR_VERSION_STRING})
3941

42+
4043
###############################################################################
4144
# Find all required libraries
4245
###############################################################################
@@ -96,10 +99,12 @@ set(LIBRARY_NAME apr)
9699
set(SOURCE_FILES src/io/blosc_filter.c src/io/hdf5functions_blosc.cpp)
97100
set(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+
99104
if(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()
110115
if(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

Comments
 (0)