X-Git-Url: http://plrg.eecs.uci.edu/git/?p=junction.git;a=blobdiff_plain;f=CMakeLists.txt;h=93cf495de51c5b16630515332694455c1a4bb503;hp=27b7a8b1482b524dd5b0c10e76fab98416c6e79b;hb=36b33f71c9b2568f3bfe1127741a1187b0ab342a;hpb=125c4e5e45715acb0444d77db7dfa384cbaff208 diff --git a/CMakeLists.txt b/CMakeLists.txt index 27b7a8b..93cf495 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,9 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) set(CMAKE_CONFIGURATION_TYPES "Debug;RelWithAsserts;RelWithDebInfo" CACHE INTERNAL "Build configs") project(Junction) set_property(GLOBAL PROPERTY USE_FOLDERS ON) + set(JUNCTION_WITH_SAMPLES TRUE CACHE BOOL "Include all Junction samples in generated build system") + set(JUNCTION_MAKE_INSTALLABLE TRUE) + set(TURF_MAKE_INSTALLABLE TRUE) endif() # Default values, can be overridden by user @@ -26,7 +29,8 @@ set(JUNCTION_ALL_DLLS "") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") # Add turf targets and import its macros since we use them below -find_package(Turf REQUIRED) +get_filename_component(outerPath "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE) +set(TURF_ROOT "${outerPath}/turf" CACHE STRING "Path to Turf") include("${TURF_ROOT}/cmake/Macros.cmake") if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) # If this is the root project, apply build settings here so that @@ -86,7 +90,7 @@ if(JUNCTION_WITH_LIBCUCKOO) endif() # If this is the root listfile, add all samples -if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) +if((CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) AND JUNCTION_WITH_SAMPLES) file(GLOB children samples/*) foreach(child ${children}) if(EXISTS "${child}/CMakeLists.txt") @@ -114,6 +118,14 @@ add_library(junction ${JUNCTION_FILES}) # Set include dirs for this library (done last, so it's not inherited by subprojects like Tervel, NBDS). include_directories(${JUNCTION_ALL_INCLUDE_DIRS}) +# Make installable. +if(JUNCTION_MAKE_INSTALLABLE) + install(TARGETS junction DESTINATION lib) + install(DIRECTORY junction/ DESTINATION include/junction FILES_MATCHING PATTERN "*.h") + file(GLOB configHeaders "${CMAKE_CURRENT_BINARY_DIR}/include/*.h") + install(FILES ${configHeaders} DESTINATION include) +endif() + # Export include dirs/libraries to parent project if we were invoked using add_subdirectory(). if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) set(JUNCTION_INCLUDE_DIRS "${JUNCTION_INCLUDE_DIRS}" PARENT_SCOPE)