cmake_minimum_required(VERSION 3.10)
project(cspice VERSION 1.0.0 LANGUAGES C)

file(GLOB SPICE_SOURCE ${PROJECT_SOURCE_DIR}/src/cspice/*.c)
set(INCLUDE_PATH "${PROJECT_SOURCE_DIR}/include")

add_library(cSpiceObj OBJECT ${SPICE_SOURCE})
set_property(TARGET cSpiceObj PROPERTY POSITION_INDEPENDENT_CODE 1)
#set_property(TARGET cSpiceObj PROPERTY C_STANDARD 90)

target_include_directories(cSpiceObj PUBLIC "${INCLUDE_PATH}")

target_compile_definitions(cSpiceObj PRIVATE NON_ANSI_STDIO)
target_compile_options(cSpiceObj PRIVATE -ansi)
target_compile_options(cSpiceObj PRIVATE -w)

add_library(cspice SHARED $<TARGET_OBJECTS:cSpiceObj>)
if(BUILD_STATIC_LIBS)
    add_library(cspice_a STATIC $<TARGET_OBJECTS:cSpiceObj>)
endif()
target_link_libraries(cspice m)

set_target_properties(cspice PROPERTIES
    CLEAN_DIRECT_OUTPUT 1
    VERSION ${PROJECT_VERSION}
    SOVERSION ${PROJECT_VERSION_MAJOR}
)
if(BUILD_STATIC_LIBS)
    set_target_properties(cspice_a PROPERTIES
        OUTPUT_NAME cspice
        CLEAN_DIRECT_OUTPUT 1
    )
endif()

install(
    TARGETS cspice
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
if(BUILD_STATIC_LIBS)
    install(
        TARGETS cspice_a
        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
    )
endif()
install(DIRECTORY include/ DESTINATION ${INCLUDE_INSTALL_DIR}/cspice)
