cmake_minimum_required(VERSION 3.10) # Project and C standard configuration project(bhlib LANGUAGES C) set(CMAKE_C_STANDARD 90) set(CMAKE_C_STANDARD_REQUIRED ON) # Check for IPO/LTO include(CheckIPOSupported) check_ipo_supported(RESULT supported) if(supported) message(STATUS "IPO/LTO enabled") set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) endif() # Enable testing include(CTest) enable_testing() # Set library code set(BHLIB_SOURCE src/hashmap.c src/queue.c ) set(BHLIB_HEADER include/bh/hashmap.h include/bh/queue.h ) # Library add_library(bhlib STATIC ${BHLIB_SOURCE} ${BHLIB_HEADER}) target_include_directories(bhlib PUBLIC include) # Runtime definition add_executable(main main.c ) target_link_libraries(main bhlib) # Tests add_subdirectory(unit) add_subdirectory(tests)