# set library output path
set(CURRENT_SOURCES
        common/logger.cpp
        common/MINHttpDef.cpp
        server/Server.cpp
        server/Service.cpp
        message/MINWebRequest.cpp
        message/MINWebResponse.cpp
        page/Dir.cpp
        page/MINWebPage.cpp
        tables/CityHash.cpp
        tables/NameTree.cpp
        tables/NameTreeEntry.cpp
        tables/NameTreeHashTable.cpp
        tables/NameTreeIterator.cpp
        tables/RPT.cpp
        tables/RPTEntry.cpp
        http/MINHttpServer.cpp
        http/MINHttpServerImpl.cpp
        http/MINHttpSession.cpp
        http/MINWebRequest.cpp
        http/MINWebResponse.cpp
        server/FileCache.cpp
        base/MBase.cpp
        )

add_library(MINWebServer SHARED ${CURRENT_SOURCES} )
add_library(MINWebServer_static STATIC ${CURRENT_SOURCES})

target_include_directories(MINWebServer
        INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(MINWebServer_static
        INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})

set_target_properties(MINWebServer_static PROPERTIES OUTPUT_NAME "MINWebServer")

install(TARGETS MINWebServer MINWebServer_static
        LIBRARY DESTINATION lib
        ARCHIVE DESTINATION lib)

install(DIRECTORY base DESTINATION include/MINWebServer FILES_MATCHING PATTERN "*.h")
install(DIRECTORY server DESTINATION include/MINWebServer FILES_MATCHING PATTERN "*.h")
install(DIRECTORY common DESTINATION include/MINWebServer FILES_MATCHING PATTERN "*.h")
install(DIRECTORY message DESTINATION include/MINWebServer FILES_MATCHING PATTERN "*.h")
install(DIRECTORY utils DESTINATION include/MINWebServer FILES_MATCHING PATTERN "*.h")
install(DIRECTORY page DESTINATION include/MINWebServer FILES_MATCHING PATTERN "*.h")
install(DIRECTORY tables DESTINATION include/MINWebServer FILES_MATCHING PATTERN "*.h")
install(DIRECTORY http DESTINATION include/MINWebServer FILES_MATCHING PATTERN "*.h")