

cmake_minimum_required(VERSION 3.6)


option(USE_LIB "Use library for modules" ON)


if (USE_LIB)

    if (NOT MODULE3_INSTALL_PREFIX)
        message(FATAL_ERROR, "Path to Module3 installation dir must be set!")
    endif()
    get_filename_component(MODULE3_INSTALL_PREFIX ${MODULE3_INSTALL_PREFIX} ABSOLUTE)


    find_library(Module3_LIB "Module3" PATHS "${MODULE3_INSTALL_PREFIX}" NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)
    find_path(Module3_INCLUDES NAMES "module1.h" "module2.h" PATHS "${MODULE3_INSTALL_PREFIX}/include/" NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH)

    include_directories(${Module3_INCLUDES})

    add_executable(Module4 main.c)
    target_link_libraries(Module4 ${Module3_LIB})

    # ??? HOW TO INCLUDE THE LIBRARIES ???

else()

    add_subdirectory(../Module1 "${CMAKE_CURRENT_BINARY_DIR}/m1")
    add_subdirectory(../Module2 "${CMAKE_CURRENT_BINARY_DIR}/m2")

    include_directories($<TARGET_PROPERTY:Module1,INCLUDE_DIRECTORIES>)
    include_directories($<TARGET_PROPERTY:Module2,INCLUDE_DIRECTORIES>)

    add_executable(Module4 main.c $<TARGET_OBJECTS:Module1> $<TARGET_OBJECTS:Module2> )
    target_link_libraries(Module4 $<BUILD_INTERFACE:Module1_LIBRARIES> $<BUILD_INTERFACE:Module2_LIBRARIES>)

endif()
