cmake_minimum_required(VERSION 3.16) project(CrossGFX) option(CROSSGFX_ISPLUGIN "Is this a plugin or a static library for something, if not a plugin it will fetchcontent crosslang and tessesframework-gfx" ON) option(CROSSGFX_SHARED_CROSSLANG "Is crosslang shared if not plugin" ON) list(APPEND CROSSGFX_SOURCES src/reg.cpp src/size.cpp src/point.cpp src/rect.cpp src/color.cpp src/format.cpp src/image.cpp src/webcam.cpp ) include(GNUInstallDirs) if(CROSSGFX_ISPLUGIN) find_package(TessesCrossLang REQUIRED) find_package(TessesFrameworkGFX REQUIRED) add_library(crosslang_gfx SHARED src/plugin.cpp ${CROSSGFX_SOURCES}) target_link_libraries(crosslang_gfx PUBLIC TessesCrossLang::crosslang_shared) target_link_libraries(crosslang_gfx PUBLIC TessesFrameworkGFX::tessesframework_gfx_shared) target_include_directories(crosslang_gfx PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") install(TARGETS crosslang_gfx DESTINATION "${CMAKE_INSTALL_LIBDIR}") else() include(FetchContent) FetchContent_Declare( TessesCrossLang GIT_REPOSITORY https://onedev.site.tesses.net/crosslang.git ) FetchContent_Declare( TessesFrameworkGFX GIT_REPOSITORY https://onedev.site.tesses.net/tesses-framework/tessesframework-gfx ) FetchContent_MakeAvailable(TessesFrameworkGFX) FetchContent_MakeAvailable(TessesCrossLang) add_library(crosslang_gfx STATIC ${CROSSGFX_SOURCES}) target_link_libraries(crosslang_gfx PUBLIC tessesframework_gfx) if(CROSSGFX_SHARED_CROSSLANG) target_link_libraries(crosslang_gfx PUBLIC crosslang_shared) else() target_link_libraries(crosslang_gfx PUBLIC crosslang_static) endif() target_include_directories(crosslang_gfx PUBLIC "$" "$" ) install(FILES include/CrossLangGFX.hpp DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(TARGETS ${CrossLangGFXLibs} EXPORT CrossLangGFXTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install(EXPORT CrossLangGFXTargets FILE CrossLangGFXTargets.cmake NAMESPACE CrossLangGFX:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CrossLangGFX ) include(CMakePackageConfigHelpers) configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/CrossLangGFXConfig.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CrossLangGFX) install(FILES "${CMAKE_CURRENT_BINARY_DIR}CrossLangGFXConfig.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CrossLangGFX) endif()