cmake_minimum_required (VERSION 2.6) project (libstick) # Set a default build type if none was specified if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) message(STATUS "Setting build type to 'Release' as none was specified.") set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE) # Set the possible values of build type for cmake-gui set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release") endif() if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -std=c++98 -pedantic") # I would like to use -pedantic, but VTK devs are not sufficiently # pedantic set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror") set(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed" ) endif() set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG") if(CMAKE_BUILD_TYPE STREQUAL "Release") # CMAKE_CXX_FLAGS_RELEASE is appended, but we need to prepend -O2 to take # effect set(CMAKE_CXX_FLAGS "-O2 ${CMAKE_CXX_FLAGS}") endif() set(PACKAGE_STRING libstick) set(PACKAGE_BUGREPORT stefan.huber@ist.ac.at) set(PACKAGE_VERSION 0.1) option(WITH_UNITTESTS "Enable unit tests" "OFF") add_subdirectory(include) add_subdirectory(lib) if(WITH_UNITTESTS) add_subdirectory(tests) enable_testing() add_test(NAME unittests COMMAND tests) endif() ########### Add uninstall target ############### configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)