
cmake_minimum_required(VERSION 3.6)


set(CMAKE_POSITION_INDEPENDENT_CODE ON)

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

add_library(Module3 STATIC source.c $<TARGET_OBJECTS:Module1> $<TARGET_OBJECTS:Module2>)
target_link_libraries(Module3
    $<BUILD_INTERFACE:Module1_LIBRARIES>
    $<BUILD_INTERFACE:Module2_LIBRARIES>
    )
target_include_directories(Module3 INTERFACE $<INSTALL_INTERFACE:include>)

install(TARGETS
  Module3
  DESTINATION "./"
  EXPORT Module3Targets
  )

install(FILES
       $<TARGET_PROPERTY:Module1,INTERFACE_SOURCES>
       $<TARGET_PROPERTY:Module2,INTERFACE_SOURCES>
       DESTINATION "./include"
       )

# !!!!
set(Module3_INSTALL_CONFIG_DIR "lib/cmake/Module3")
set(Module3_INSTALL_LIB_DIR "./")
set(Module3_INSTALL_INCLUDE_DIR "include")

include(CMakePackageConfigHelpers)

configure_package_config_file(
  ${CMAKE_CURRENT_SOURCE_DIR}/Module3.cmake.in
  ${CMAKE_CURRENT_BINARY_DIR}/Module3Config.cmake
  INSTALL_DESTINATION ${Module3_INSTALL_CONFIG_DIR}
  PATH_VARS
    Module3_INSTALL_CONFIG_DIR
    Module3_INSTALL_LIB_DIR
    Module3_INSTALL_INCLUDE_DIR
  )

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Module3Config.cmake
        DESTINATION ${Module3_INSTALL_CONFIG_DIR})

install(EXPORT Module3Targets
  FILE Module3Targets.cmake
  DESTINATION ${Module3_INSTALL_CONFIG_DIR}
  )
# !!!!
