# Rules for building libraries

# Copy NewLib headers to sysroot dir
set(NEWLIB_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/newlib)
set(SHA_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/sha)
set(CONSOLE_SHIM_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/console)

add_custom_target(newlib-headers
    COMMAND
        ${CMAKE_COMMAND} -E copy_directory
        "${NEWLIB_SRC_DIR}/newlib/libc/include"
        "${KOS_SDK_DIR}/i586-kolibrios/include"
    COMMENT "Copying all Newlib headers to ${KOS_SDK_DIR}}/include"
)

# Newlib
ExternalProject_Add(
    newlib
    SOURCE_DIR ${NEWLIB_SRC_DIR}
    CONFIGURE_COMMAND
         ${CMAKE_COMMAND} -E env CFLAGS=-Os
         ${NEWLIB_SRC_DIR}/newlib/configure
        --host=i586-kolibrios
        --prefix=${KOS_SDK_DIR}
    BUILD_COMMAND make -j${JOBS}
    INSTALL_COMMAND make install
    BUILD_ALWAYS TRUE
    DEPENDS gcc
)

# SHA
ExternalProject_Add(
    sha
    SOURCE_DIR ${SHA_SRC_DIR}
    CMAKE_ARGS
        -DCMAKE_C_COMPILER=i586-kolibrios-gcc
        -DCMAKE_C_COMPILER_WORKS=1
        -DCMAKE_INSTALL_PREFIX=${KOS_SDK_DIR}/i586-kolibrios
    BUILD_ALWAYS TRUE
    DEPENDS gcc
)

# Console shim
ExternalProject_Add(
    console_shim
    SOURCE_DIR ${CONSOLE_SHIM_SRC_DIR}
    CMAKE_ARGS
        -DCMAKE_C_COMPILER=i586-kolibrios-gcc
        -DCMAKE_C_COMPILER_WORKS=1
        -DCMAKE_INSTALL_PREFIX=${KOS_SDK_DIR}/i586-kolibrios
    BUILD_ALWAYS TRUE
    DEPENDS gcc
)