INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${TULIP_INCLUDE_DIR} ${PORTGRAPH_INCLUDE_DIR} ${Boost_INCLUDE_DIRS})

SET(PORGY_STRATEGY_DEBUG_MESSAGES OFF CACHE BOOL "Do you want to activate strategy debug messages? [ON|OFF]")
MARK_AS_ADVANCED(PORGY_STRATEGY_DEBUG_MESSAGES)

SET(LIB_SRCS
    RunStrategyElement.cpp
    runstrategyelementvisitors.cpp
    Strategy.cpp
    StrategyElement.cpp
    UtreeWalk.cpp)

IF(NOT MSVC AND WIN32 AND "${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
    # Fix build on Windows with MinGW/MSYS2, see: https://stackoverflow.com/a/29479701/1826326
    set_source_files_properties(Strategy.cpp PROPERTIES COMPILE_FLAGS -Og)
ENDIF(NOT MSVC AND WIN32 AND "${CMAKE_BUILD_TYPE}" STREQUAL "Debug")

IF(PORGY_STRATEGY_DEBUG_MESSAGES)
    ADD_DEFINITIONS(-DPORGY_STRATEGY_DEBUG_MESSAGES)
    SET(LIB_SRCS
        ${LIB_SRCS}
        UtreePrint.cpp)
    ENDIF(PORGY_STRATEGY_DEBUG_MESSAGES)

STRING(REGEX REPLACE ".*/" "" PLUGIN_NAME ${CMAKE_CURRENT_SOURCE_DIR})
STRING(TOLOWER ${PLUGIN_NAME} PLUGIN_NAME)

ADD_LIBRARY(${PLUGIN_NAME}-${TULIP_VERSION} SHARED ${LIB_SRCS})
TARGET_LINK_LIBRARIES(${PLUGIN_NAME}-${TULIP_VERSION} ${TULIP_LIBRARY} ${PORTGRAPH_LIBS} ${TULIP_PYTHON_LIBRARY} ${QT_LIBRARIES})

INSTALL(TARGETS ${PLUGIN_NAME}-${TULIP_VERSION} DESTINATION ${TULIP_PLUGINS_DIR} COMPONENT Porgy)
