45 lines
1 KiB
CMake
45 lines
1 KiB
CMake
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 <stdint.h>
|
|
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)
|