blob: f81f38189ea4d3fd06e979f11f8aac5370466099 [file] [log] [blame]
Marco Poletticf798fa2014-06-21 15:05:15 +01001project(injection)
2cmake_minimum_required(VERSION 2.8)
3
4if(NOT CMAKE_BUILD_TYPE)
5 set(CMAKE_BUILD_TYPE "Release")
6endif()
7
Marco Poletti050d6002014-11-09 18:18:40 +00008add_definitions(-std=c++11 -W -Wall)
Marco Poletti71c36de2014-11-01 10:51:07 +00009if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
Marco Poletti050d6002014-11-09 18:18:40 +000010 add_definitions(-g -O2 -Werror -DFRUIT_EXTRA_DEBUG -D_GLIBCXX_DEBUG -ftemplate-backtrace-limit=0)
Marco Poletti71c36de2014-11-01 10:51:07 +000011endif()
Marco Poletticf798fa2014-06-21 15:05:15 +010012
Marco Poletti71c36de2014-11-01 10:51:07 +000013include_directories(${CMAKE_SOURCE_DIR}/include)
Marco Poletti06a1d1e2014-09-20 20:59:51 +010014
Marco Poletti2f4a41c2014-10-18 09:48:28 -070015#set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
Marco Poletticf798fa2014-06-21 15:05:15 +010016
Marco Poletti81e03d52014-11-01 18:21:04 +000017# Unsafe, only for debugging/benchmarking.
Marco Poletti050d6002014-11-09 18:18:40 +000018#add_definitions(-DFRUIT_NO_LOOP_CHECK)
Marco Poletti81e03d52014-11-01 18:21:04 +000019
20
Marco Polettie66e1e72014-06-21 18:07:22 +010021set(INSTALL_LIBRARY_DIR lib CACHE PATH "Installation directory for libraries")
22set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for headers")
23
Marco Poletti23d852c2014-11-01 16:34:02 +000024set(FRUIT_VERSION "0.9.6")
Marco Poletticc3a6232014-07-27 16:23:11 +010025
Marco Poletticf798fa2014-06-21 15:05:15 +010026enable_testing()
27
28add_subdirectory(src)
Marco Poletti1fb101f2014-10-12 16:18:17 +010029
30if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
31 # Do not exclude these from "make all" in debug mode, they must build.
32 add_subdirectory(extras)
33 add_subdirectory(examples)
34 add_subdirectory(tests)
35else()
36 add_subdirectory(extras EXCLUDE_FROM_ALL)
37 add_subdirectory(examples EXCLUDE_FROM_ALL)
38 add_subdirectory(tests EXCLUDE_FROM_ALL)
39endif()
40
Marco Polettid5dc2eb2014-07-05 17:07:57 +010041add_subdirectory(doc EXCLUDE_FROM_ALL)
Marco Poletticf798fa2014-06-21 15:05:15 +010042
43install(DIRECTORY include
Marco Polettie66e1e72014-06-21 18:07:22 +010044 DESTINATION ${INSTALL_INCLUDE_DIR}/fruit
Marco Poletticf798fa2014-06-21 15:05:15 +010045 FILES_MATCHING PATTERN "*.h")