Skip to content
Snippets Groups Projects
CMakeLists.txt 1.93 KiB
Newer Older
Wuttke, Joachim's avatar
Wuttke, Joachim committed
cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
if(POLICY CMP0077)
    cmake_policy(SET CMP0077 NEW) # since 3.13
endif()
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
include(PreventInSourceBuilds)

option(PEDANTIC "Compile with pedantic warnings" ON)

set(Frida_VERSION 2.4.2d)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
if(MSVC)
else()
    add_compile_options(-O2)
    if(PEDANTIC)
Wuttke, Joachim's avatar
Wuttke, Joachim committed
        add_compile_options(-pedantic -Wall -Wno-sign-compare -Wno-parentheses)
    endif()
endif()

set(BUILD_SHARED_LIBS ON)

include(CTest) # equivalent to "enable_testing() ???
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}) # => 'make check' is an alias for 'ctest'
configure_file(${CMAKE_SOURCE_DIR}/cmake/scripts/CTestCustom.cmake.in
    ${CMAKE_BINARY_DIR}/CTestCustom.cmake)
set(destination_lib ${CMAKE_INSTALL_PREFIX}/lib)

Wuttke, Joachim's avatar
Wuttke, Joachim committed
find_package(Boost REQUIRED filesystem)
find_package(BISON REQUIRED)
find_package(FLEX REQUIRED)
find_package(Readline REQUIRED)
find_package(GSL REQUIRED)
find_package(FFTW_DBL REQUIRED)
find_package(YamlCpp05 REQUIRED)
find_package(KWW REQUIRED)
find_package(Cerf REQUIRED)
find_package(LMFit REQUIRED)
find_package(Gnuplot REQUIRED)
message(STATUS "All required packages found")
add_subdirectory(readplus)
add_subdirectory(trivia)
Wuttke, Joachim's avatar
Wuttke, Joachim committed
add_subdirectory(plot)
add_subdirectory(src)
add_subdirectory(share)
add_subdirectory(man)
Wuttke, Joachim's avatar
Wuttke, Joachim committed

message(STATUS "Now configuring gtest")
set(gtest_disable_pthreads ON)
add_subdirectory(3rdparty/gtest)
message(STATUS "Now configuring utest")
Wuttke, Joachim's avatar
Wuttke, Joachim committed
add_subdirectory(utest) # unit tests
message(STATUS "Now configuring ftest")
Wuttke, Joachim's avatar
Wuttke, Joachim committed
add_subdirectory(ftest) # functional tests (run Frida with given script)
Wuttke, Joachim's avatar
Wuttke, Joachim committed

# --- Additional tests to be activated when needed ---
message(STATUS "Now configuring ptest")
Wuttke, Joachim's avatar
Wuttke, Joachim committed
add_subdirectory(ptest) # performance tests
Wuttke, Joachim's avatar
Wuttke, Joachim committed
# add_subdirectory(readplus/test) # interactive readline test

message(STATUS "End of main/CMakeLists.txt")