project(libnetplus CXX C ASM )
cmake_minimum_required(VERSION 3.26)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/" ${CMAKE_MODULE_PATH} )

set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)

set(CMAKE_CXX_STANDARD 17)

if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Linux")
    set (VISIBILTY_HIDDEN "__attribute__ ((visibility (\"hidden\")))")

    set(CMAKE_CXX_FLAGS 
        "${CMAKE_CXX_FLAGS} \
        -fPIC \
        -Wall \
        -O2 \
        -g "
    )

    set(CMAKE_C_FLAGS 
        "${CMAKE_C_FLAGS} \
        -fPIC \
        -Wall \
        -O2 \
        -g "
    )
endif()

if(MSVC)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17")
endif(MSVC)

include(GNUInstallDirs)

set(LIBV "1")
set(Upstream_VERSION 1.0.0)

if(${DEBUG} MATCHES TRUE)
    add_definitions(-DDEBUG)
endif()

configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)

include_directories(
   "${CMAKE_CURRENT_BINARY_DIR}"
)

install(
    FILES 
        "${CMAKE_CURRENT_BINARY_DIR}/config.h"
    DESTINATION 
        ${CMAKE_INSTALL_INCLUDEDIR}/netplus
)

add_subdirectory(src)
add_subdirectory(tools)
add_subdirectory(test)
