# ---------------------------------------------------------------------------
# Navtex PlugIn for OpenCPN — MSI parse + chart overlay (free, no license gate)
# ---------------------------------------------------------------------------

cmake_minimum_required(VERSION 3.10)
cmake_policy(SET CMP0043 NEW)

project(navtex_pi)

set(PACKAGE_NAME navtex_pi)
set(VERBOSE_NAME Navtex)
set(TITLE_NAME Navtex)
set(CPACK_PACKAGE_CONTACT "Navtex")

set(VERSION_MAJOR "1")
set(VERSION_MINOR "1")
set(VERSION_PATCH "0")
set(VERSION_DATE "2026-09-17")

if (NOT CMAKE_BUILD_TYPE)
  set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
endif ()

if (APPLE)
  include_directories(${CMAKE_SOURCE_DIR}/buildosx/include)
elseif (QT_ANDROID)
  include_directories(${CMAKE_SOURCE_DIR}/android)
endif ()

include("cmake/PluginConfigure.cmake")

set(SRC_NAVTEX
    src/navtex_pi.h
    src/navtex_pi.cpp
    src/nt_dialog.h
    src/nt_dialog.cpp
    src/navtex_types.h
    src/navtex_parser.h
    src/navtex_parser.cpp
    src/navtex_b1.h
    src/navtex_b1.cpp
    src/navtex_b2.h
    src/navtex_cache.h
    src/navtex_cache.cpp
    src/navarea_map.h
    src/navarea_map.cpp
    src/sealagom_feed.h
    src/sealagom_feed.cpp
    src/msi_html_sources.h
    src/msi_html_sources.cpp
    src/iho_coordinators.h
    src/iho_coordinators.cpp
    src/navtex_parcel.h
    src/navtex_parcel.cpp
    src/navtex_lexicon.h
    src/navtex_lexicon.cpp
    src/navtex_colors.h
    src/navtex_colors.cpp
    src/navtex_corpus_zip.h
    src/navtex_corpus_zip.cpp
    src/icons.h
    src/icons.cpp
)

add_library(${PACKAGE_NAME} SHARED ${SRC_NAVTEX})

message(STATUS "navtex_pi: free full use (no license module)")

target_include_directories(
  ${PACKAGE_NAME} BEFORE PRIVATE ${CMAKE_CURRENT_LIST_DIR}/src
)

target_link_libraries(${PACKAGE_NAME} PUBLIC ocpn::opencpn)

if (WIN32)
  target_link_libraries(${PACKAGE_NAME} PRIVATE winhttp shell32)
endif ()

if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang|AppleClang")
  target_compile_options(
    ${PACKAGE_NAME} PRIVATE -Wno-unknown-pragmas -Wno-overloaded-virtual
  )
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
  target_compile_options(${PACKAGE_NAME} PRIVATE -Wno-unknown-pragmas)
endif ()

if (NOT QT_ANDROID)
  target_link_libraries(
    ${PACKAGE_NAME} PRIVATE ${wxWidgets_LIBRARIES} ocpn::wxjson ocpn::gl-headers
  )
endif ()

include("cmake/PluginInstall.cmake")
include("cmake/PluginLocalization.cmake")
include("cmake/PluginPackage.cmake")
