cmake_minimum_required(VERSION 3.16) project(sj3 VERSION 2.0.99 LANGUAGES C) include(CheckCSourceCompiles) if(NOT DEFINED CMAKE_C_STANDARD) set(CMAKE_C_STANDARD 90) endif() set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS OFF) set(SJ3CONFDIR "/etc/sj3" CACHE PATH "SJ3 configuration directory") set(SJ3DICTDIR "${CMAKE_INSTALL_PREFIX}/share/sj3/dict" CACHE PATH "SJ3 dictionary directory") check_c_source_compiles(" #if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) # error C99 required #endif #include int main(void) { uint8_t u8 = 0; uint16_t u16 = 0; uint32_t u32 = 0; uint64_t u64 = 0; return (int)(u8 + u16 + u32 + u64); } " HAVE_C99_STDINT) configure_file(config.h.cmake config.h @ONLY) configure_file(Paths.h.in Paths.h @ONLY) add_library(sj3types INTERFACE) target_include_directories(sj3types INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) add_library(sj3_core_types OBJECT wc16_str.c string.c string2.c ) target_link_libraries(sj3_core_types PRIVATE sj3types)