1cmake_minimum_required(VERSION 3.1) 2 3# Extract version from configure.ac. 4set(VERSION_REGEX "^AC_INIT\\(libconfig,[ \t]+([0-9.]+),.*") 5file(STRINGS "configure.ac" 6 VERSION_STRING REGEX ${VERSION_REGEX}) 7string(REGEX REPLACE ${VERSION_REGEX} "\\1" VERSION_STRING "${VERSION_STRING}") 8 9project(libconfig LANGUAGES C CXX VERSION ${VERSION_STRING}) 10option(BUILD_EXAMPLES "Enable examples" ON) 11option(BUILD_SHARED_LIBS "Enable shared library" ON) 12option(BUILD_TESTS "Enable tests" ON) 13 14set_property(GLOBAL PROPERTY USE_FOLDERS ON) 15 16set(CMAKE_C_STANDARD 99) 17set(CMAKE_C_EXTENSIONS ON) 18 19set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/out) 20set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/out) 21set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/out) 22 23include(GNUInstallDirs) 24include(CheckSymbolExists) 25add_subdirectory(lib) 26 27if(BUILD_EXAMPLES) 28 add_subdirectory(examples) 29endif() 30 31if(BUILD_TESTS) 32 enable_testing() 33 add_subdirectory(tinytest) 34 add_subdirectory(tests) 35endif() 36