Fix cmake

This commit is contained in:
2025-11-02 18:41:09 -06:00
parent 95e84ecb0e
commit a29634b784

View File

@@ -1,10 +1,6 @@
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)
option(CROSSGFX_FETCHCONTENT "Whether to Fetch content" ON)
list(APPEND CROSSGFX_SOURCES
src/reg.cpp
src/size.cpp
@@ -18,7 +14,6 @@ src/webcam.cpp
include(GNUInstallDirs)
if(CROSSGFX_ISPLUGIN)
find_package(TessesCrossLang REQUIRED)
find_package(TessesFrameworkGFX REQUIRED)
@@ -27,78 +22,3 @@ 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()
if(CROSSGFX_FETCHCONTENT)
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)
else()
find_package(TessesFrameworkGFX REQUIRED)
find_package(TessesCrossLang REQUIRED)
endif()
add_library(crosslang_gfx STATIC ${CROSSGFX_SOURCES})
list(APPEND CrossLangGFXTargets crosslang_gfx)
if(CROSSGFX_FETCHCONTENT)
target_link_libraries(crosslang_gfx PUBLIC tessesframework_gfx)
list(APPEND CrossLangGFXTargets tessesframework_gfx)
if(CROSSGFX_SHARED_CROSSLANG)
target_link_libraries(crosslang_gfx PUBLIC crosslang_shared)
list(APPEND CrossLangGFXTargets crosslang_shared)
else()
target_link_libraries(crosslang_gfx PUBLIC crosslang_static)
list(APPEND CrossLangGFXTargets crosslang_static)
endif()
else()
if(CROSSGFX_SHARED_CROSSLANG)
target_link_libraries(crosslang_gfx PUBLIC TessesFrameworkGFX::tessesframework_gfx_shared)
target_link_libraries(crosslang_gfx PUBLIC TessesCrossLang::crosslang_shared)
else()
target_link_libraries(crosslang_gfx PUBLIC TessesFrameworkGFX::tessesframework_gfx)
target_link_libraries(crosslang_gfx PUBLIC TessesCrossLang::crosslang_static)
endif()
endif()
target_include_directories(crosslang_gfx
PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
)
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()