mirror of
https://github.com/avast/retdec.git
synced 2024-12-19 19:37:12 +00:00
53 lines
1.8 KiB
CMake
53 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.6)
|
|
project(retdec C CXX)
|
|
|
|
# Set the default build type to 'Release'.
|
|
if (NOT CMAKE_BUILD_TYPE)
|
|
set(default_build_type "Release")
|
|
message(STATUS "Setting build type to '${default_build_type}' as none was specified.")
|
|
set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE)
|
|
endif()
|
|
|
|
option(RETDEC_DOC "Build public API documentation (requires Doxygen)." OFF)
|
|
option(RETDEC_TESTS "Build tests." OFF)
|
|
option(RETDEC_DEV_TOOLS "Build dev tools." OFF)
|
|
|
|
set(CMAKE_CXX_STANDARD 14)
|
|
|
|
# On Linux and macOS, set RPATH relative to the origin of the installed
|
|
# executables (i.e. relative to the bin directory). This allows us to move the
|
|
# installation directory into a different location after installation, which is
|
|
# useful e.g. when the installation is performed on one machine but we want to
|
|
# run the executables on a different machine.
|
|
#
|
|
# On Windows, there is no need to set anything as DLLs are installed into the
|
|
# bin directory, where they are automatically picked up by executables.
|
|
#
|
|
# For more details, see
|
|
# - https://github.com/avast-tl/retdec/issues/77
|
|
# - https://cmake.org/Wiki/CMake_RPATH_handling
|
|
if(APPLE)
|
|
set(CMAKE_INSTALL_RPATH "@executable_path/../lib")
|
|
elseif(UNIX)
|
|
set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib")
|
|
endif()
|
|
|
|
# Build all external projects in the same directory that is directly inside the
|
|
# build directory. This reduces path lengths, which is important on Windows as
|
|
# there is a limit on how long a path can be.
|
|
set(EP_PREFIX "${PROJECT_BINARY_DIR}/external")
|
|
set_directory_properties(PROPERTIES EP_PREFIX "${EP_PREFIX}")
|
|
|
|
set(DEPS_TESTS ${RETDEC_TESTS})
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/install-external.cmake)
|
|
|
|
add_subdirectory(deps)
|
|
if(RETDEC_DOC)
|
|
add_subdirectory(doc)
|
|
endif()
|
|
add_subdirectory(scripts)
|
|
add_subdirectory(src)
|
|
if(RETDEC_TESTS)
|
|
add_subdirectory(tests)
|
|
endif()
|