| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- cmake_minimum_required(VERSION 3.0)
- # Build verbosity: on / off.
- set(CMAKE_VERBOSE_MAKEFILE off)
- # C++ Standard.
- set(CMAKE_CXX_STANDARD 14)
- set(CMAKE_CXX_STANDARD_REQUIRED True)
- # Add cotire
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake")
- include(cotire)
- # Project Information.
- project(V-Gears)
- set(CMAKE_PACKAGE_ICON v-gears.png)
- set(VGEARS_VERSION_MAJOR 0)
- set(VGEARS_VERSION_MINOR 1)
- set(VGEARS_VERSION_PATCH 18)
- set(VGEARS_VERSION ${VGEARS_VERSION_MAJOR}.${VGEARS_VERSION_MINOR}.${VGEARS_VERSION_PATCH})
- # Project options.
- option(BUILD_INSTALLER "Build the V-Gears-Installer" TRUE)
- option(BUILD_TESTS "Build the unit tests" FALSE)
- option(MULTITHREADING "Enable multithreading" FALSE)
- # Generate version header.
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/Version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/src/Version.h)
- # Hanle build type
- if ("${CMAKE_BUILD_TYPE}" STREQUAL "")
- # CMake defaults to leaving CMAKE_BUILD_TYPE empty. This screws up
- # differentiation between debug and release builds.
- set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: None (CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
- endif()
- #Output directories
- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/lib)
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/lib)
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin_debug/lib)
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin_debug/lib)
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin_debug)
- # Enable Visual Studio solution "folders".
- SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
- # Global configurations.
- set(CMAKE_DEBUG_POSTFIX "_d")
- if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
- set(CMAKE_CURRENT_SOURCE_DIR
- "${VGEARS_SOURCE_DIR}/data" CACHE PATH "V-Gears install prefix" FORCE
- )
- endif()
- # First, build external libraries (luabind and luajit).
- add_subdirectory(lib)
- # Build v-gears (and, if requested, the installer).
- add_subdirectory(src)
- # If requested, build tests
- if(BUILD_TESTS)
- add_subdirectory(test)
- endif()
- # TODO: Generate Installer (.msi, .deb, .appImage...)
|