# # uvw # # # Building in-tree is not allowed (we take care of your craziness). # if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) message(FATAL_ERROR "Prevented in-tree built. Please create a build directory outside of the source code and call cmake from there. Thank you.") endif() # # Project configuration # project(uvw) cmake_minimum_required(VERSION 3.4) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Debug) endif(NOT CMAKE_BUILD_TYPE) set(PROJECT_NAME "uvw") set(PROJECT_VERSION_MAJOR 0) set(PROJECT_VERSION_MINOR 1) set(PROJECT_VERSION_PATCH 0) set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) set(SETTINGS_ORGANIZATION "Michele Caini") set(SETTINGS_APPLICATION ${PROJECT_NAME}) set(PROJECT_AUTHOR "Michele Caini") set(PROJECT_YEAR_COPYRIGHT "2016") set(PROJECT_AUTHOR_EMAIL "michele.caini@gmail.com") set(PROJECT_BUILD_MESSAGE ${PROJECT_NAME} " v" ${PROJECT_VERSION} " (" ${CMAKE_BUILD_TYPE} ")") set(COPYRIGHT_BUILD_MESSAGE "Copyright (c) " ${PROJECT_YEAR_COPYRIGHT} " " ${PROJECT_AUTHOR} " <" ${PROJECT_AUTHOR_EMAIL} ">") message("*") message("* " ${PROJECT_BUILD_MESSAGE}) message("* " ${COPYRIGHT_BUILD_MESSAGE}) message("*") if(APPLE) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-undefined,dynamic_lookup") else(APPLE) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") endif(APPLE) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g -DDEBUG") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Os -DRELEASE") add_definitions( -DPROJECT_NAME=${PROJECT_NAME} -DPROJECT_VERSION=${PROJECT_VERSION} ) # # CMake configuration # set(PROJECT_CMAKE_MODULES cmake/modules) set(PROJECT_BUILD_DIR build) set(PROJECT_DEPS_DIR deps) set(PROJECT_SRC_DIR src) set(PROJECT_TEST_DIR test) set(PROJECT_RUNTIME_OUTPUT_DIRECTORY bin) set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/${PROJECT_CMAKE_MODULES} ) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_RUNTIME_OUTPUT_DIRECTORY}) # # Enable test support using ctest # include(CTest) # # Referenced packages # find_package(UV REQUIRED) find_package(Threads REQUIRED) find_package(GoogleTest REQUIRED) # # Referenced directories and targets # if(${GOOGLETEST_FOUND}) add_subdirectory(${PROJECT_TEST_DIR}) endif(${GOOGLETEST_FOUND}) # # Keep your stuff and go further away, foolish. # set(CPACK_PACKAGE_NAME ${PROJECT_NAME}) set(CPACK_PACKAGE_VENDOR ${PROJECT_AUTHOR}) set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) set(CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}) set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "uvw") set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}) set(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME}-src) set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE) set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.md) set(CPACK_GENERATOR TGZ) set(CPACK_SOURCE_GENERATOR TGZ) set(CPACK_PACKAGING_INSTALL_DIRECTORY "uvw-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") include(CPack) # # I use QtCreator and I need the lines below, so do not ask. :-) # file( GLOB_RECURSE PROJECT_FILES FOLLOW_SYMLINKS *.txt *.c *.cpp *.hpp *.h *.in *.cmake *.sh Makefile *.md ) add_custom_target( QTCREATOR_FALLBACK ALL COMMENT "Feel free to ignore this target, but please do not remove it." SOURCES ${PROJECT_FILES} )