# CMakelists.txt for DNA module of Manyo-lib
# $ cd Utsusemi-DNA
# $ mkdir build; cd build
# $ rm -rf *; cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/install [-DMULTH=<n>[, -DMXML_PATH=/path/to/mxml, -DMXML_VER=4, -DNEXUS_PATH=/path/to/nexul, -DMANYO_INSTTYPE=(N/O)]]
# $ make install

cmake_minimum_required(VERSION 3.13)
project(UtsusemiDNA
    VERSION 4.0
    LANGUAGES CXX
)

#
# ========= Arguments =========
#

# Installation type
# MANYO_LIB_PATH is the relative path to libManyo and other manyo libraries from CMAKE_INSTALL_PREFIX
# as "lib/python3.11/dist-package"
# Therefor MANYO_PATH is ${CMAKE_INSTALL_PREFIX}/${MANYO_LIB_PATH}
if ((DEFINED MANYO_INSTTYPE) AND (${MANYO_INSTTYPE} MATCHES "N"))
    message("MANYO_INSTTYPE = New")
    set(MANYO_LIB_PATH lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/dist-packages)
    set(MANYO_PATH ${CMAKE_INSTALL_PREFIX}/${MANYO_LIB_PATH})
    set(MANYO_ROOT_PATH ${CMAKE_INSTALL_PREFIX})
else()
    message("MANYO_INSTTYPE = Old")
    set(MANYO_LIB_PATH lib)
    set(MANYO_PATH ${CMAKE_INSTALL_PREFIX}/manyo)
    set(MANYO_ROOT_PATH ${CMAKE_INSTALL_PREFIX}/manyo)
endif()

# Set MANYO_MULTH
if (DEFINED MULTH)
    set(MANYO_MULTH ${MULTH})
else (DEFINED MULTH)
    set(MANYO_MULTH 8)
endif (DEFINED MULTH)

# Set MANYO_NEXUS_PATH
if (DEFINED NEXUS_PATH)
    set(MANYO_NEXUS_PATH ${NEXUS_PATH})
else ()
    set(MANYO_NEXUS_PATH ${MANYO_ROOT_PATH})
endif ()
message("MANYO_NEXUS_PATH=" ${MANYO_NEXUS_PATH})

# Set MXML environment
if (DEFINED MXML_PATH)
    set(MANYO_MXML_LIB_PATH ${MXML_PATH}/lib)
    set(MANYO_MXML_INC_PATH ${MXML_PATH}/include)
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
    set(MANYO_MXML_LIB_PATH /opt/homebrew/lib)
    set(MANYO_MXML_INC_PATH /opt/homebrew/include)
endif ()

if ((DEFINED MXML_VER) AND (${MXML_VER} MATCHES "4"))
    message("Define LIBMXML4")
    set(LIBMXML mxml4)
else()
    set(LIBMXML mxml)
endif()

#
# ========= Dependencies =========
#

# Find Python
find_package(Python
    COMPONENTS
        Interpreter
        Development
)

#
# ========= Subdirectories =========
#

add_subdirectory(lib-levmar/2.5)
add_subdirectory(manyo-LevmarTools)
add_subdirectory(manyo)
