| 1 | cmake_minimum_required(VERSION 2.6) |
|---|
| 2 | project(LIBGEODECOMP) |
|---|
| 3 | include(conf.cmake) |
|---|
| 4 | |
|---|
| 5 | include_directories(${LIBGEODECOMP_SOURCE_DIR}) |
|---|
| 6 | |
|---|
| 7 | if(WIN32) |
|---|
| 8 | add_library(local_libgeodecomp_lib STATIC IMPORTED) |
|---|
| 9 | set_property(TARGET local_libgeodecomp_lib PROPERTY IMPORTED_LOCATION ${LIBGEODECOMP_BINARY_DIR}/libgeodecomp/geodecomp.lib) |
|---|
| 10 | set(LOCAL_LIBGEODECOMP_LINK_LIB local_libgeodecomp_lib) |
|---|
| 11 | else(WIN32) |
|---|
| 12 | set(LOCAL_LIBGEODECOMP_LINK_LIB geodecomp) |
|---|
| 13 | endif(WIN32) |
|---|
| 14 | |
|---|
| 15 | # LIBDIRS is used to find source files and headers |
|---|
| 16 | set(LIBDIRS io loadbalancer misc mpilayer parallelization parallelization/hiparsimulator parallelization/hiparsimulator/partitions) |
|---|
| 17 | # AUXDIRS lists auxiliary directories to be included in the main |
|---|
| 18 | # build. They may for instance include additionally libraries to be |
|---|
| 19 | # linked into the main lib. |
|---|
| 20 | set(AUXDIRS) |
|---|
| 21 | # set(AUXDIRS misc/testbed/cell/spustuff) |
|---|
| 22 | set(SUBDIRS examples io loadbalancer misc mpilayer parallelization testbed) |
|---|
| 23 | |
|---|
| 24 | # link all sources |
|---|
| 25 | set(SOURCES "") |
|---|
| 26 | foreach(dir ${LIBDIRS}) |
|---|
| 27 | set(RELATIVE_PATH ${dir}/) |
|---|
| 28 | include(${dir}/auto.cmake) |
|---|
| 29 | endforeach(dir) |
|---|
| 30 | |
|---|
| 31 | add_library(geodecomp ${LIB_LINKAGE_TYPE} ${SOURCES}) |
|---|
| 32 | target_link_libraries(geodecomp boost_date_time${BOOST_LINK_SUFFIX}) |
|---|
| 33 | target_link_libraries(geodecomp boost_filesystem${BOOST_LINK_SUFFIX}) |
|---|
| 34 | target_link_libraries(geodecomp boost_system${BOOST_LINK_SUFFIX}) |
|---|
| 35 | if (LIBGEODECOMP_FEATURE_OPENCL) |
|---|
| 36 | target_link_libraries(geodecomp OpenCL) |
|---|
| 37 | endif (LIBGEODECOMP_FEATURE_OPENCL) |
|---|
| 38 | install(TARGETS geodecomp DESTINATION lib) |
|---|
| 39 | install(FILES config.h DESTINATION include/${PACKAGE_NAME}) |
|---|
| 40 | |
|---|
| 41 | # install all headers |
|---|
| 42 | foreach(dir ${LIBDIRS}) |
|---|
| 43 | set(HEADERS "") |
|---|
| 44 | set(RELATIVE_PATH ${dir}/) |
|---|
| 45 | include(${dir}/auto.cmake) |
|---|
| 46 | install(FILES ${HEADERS} DESTINATION include/${PACKAGE_NAME}/${dir}) |
|---|
| 47 | endforeach(dir) |
|---|
| 48 | |
|---|
| 49 | set(HEADERS "") |
|---|
| 50 | set(SOURCES "") |
|---|
| 51 | |
|---|
| 52 | # recurse subdirs |
|---|
| 53 | foreach(dir ${SUBDIRS}) |
|---|
| 54 | add_subdirectory(${dir}) |
|---|
| 55 | endforeach(dir) |
|---|
| 56 | |
|---|
| 57 | foreach(dir ${AUXDIRS}) |
|---|
| 58 | set(HEADERS "") |
|---|
| 59 | set(SOURCES "") |
|---|
| 60 | include(${dir}/aux.cmake) |
|---|
| 61 | endforeach(dir) |
|---|