-
|
有这个想法的背景是,我基于 tgfx 开发我们的选座渲染功能。 不知道这个想法,官方仓库是否可以考虑支持一下呢?下面是我整理的 function(tgfx_common_target_setup)
list(APPEND COMMON_ALL_FILES
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/Buffer.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/MathExtra.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/MathExtra.h
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/Log.h
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/HashRange.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/HashRange.h
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/LazyBounds.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/LazyBounds.h
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/DataView.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/Stream.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/WriteStream.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/ColorSpaceHelper.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/ColorSpaceHelper.h
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/BytesKey.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/UniqueID.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/UniqueID.h
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/CopyPixels.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/utils/CopyPixels.h
${CMAKE_CURRENT_LIST_DIR}/src/core/ImageInfo.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/Data.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/Color.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/ColorSpace.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/ColorSpaceXformSteps.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/ColorSpaceXformSteps.h
${CMAKE_CURRENT_LIST_DIR}/src/core/Checksum.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/Checksum.h
${CMAKE_CURRENT_LIST_DIR}/src/core/MatrixSIMD.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/Matrix.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/Path.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/PathRef.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/PathRef.h
${CMAKE_CURRENT_LIST_DIR}/src/core/PathTriangulator.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/PathTriangulator.h
${CMAKE_CURRENT_LIST_DIR}/src/core/PathEffect.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/AdaptiveDashEffect.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/AdaptiveDashEffect.h
${CMAKE_CURRENT_LIST_DIR}/src/core/PathMeasure.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/PathProvider.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/RRect.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/Rect.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/RectSIMD.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/RectPackSkyline.cpp
${CMAKE_CURRENT_LIST_DIR}/src/core/RectPackSkyline.h
${CMAKE_CURRENT_LIST_DIR}/src/core/YUVColorSpace.cpp
${CMAKE_CURRENT_LIST_DIR}/src/gpu/resources/ResourceKey.cpp
${CMAKE_CURRENT_LIST_DIR}/src/gpu/resources/ResourceKey.h
${CMAKE_CURRENT_LIST_DIR}/src/gpu/UniqueDomain.cpp
${CMAKE_CURRENT_LIST_DIR}/src/gpu/UniqueDomain.h
)
if(ANDROID)
list(APPEND COMMON_ALL_FILES
${CMAKE_CURRENT_LIST_DIR}/src/platform/android/Print.cpp
)
find_library(LOG_LIB log)
list(APPEND TGFX_COMMON_SHARED_LIBS ${LOG_LIB})
elseif(OHOS)
list(APPEND COMMON_ALL_FILES
${CMAKE_CURRENT_LIST_DIR}/src/platform/ohos/Print.cpp
)
find_library(HILOG_NDK_LIB hilog_ndk.z)
list(APPEND TGFX_COMMON_SHARED_LIBS ${HILOG_NDK_LIB})
else()
list(APPEND COMMON_ALL_FILES
${CMAKE_CURRENT_LIST_DIR}/src/platform/Print.cpp
)
if(APPLE)
find_library(FOUNDATION Foundation REQUIRED)
list(APPEND TGFX_COMMON_SHARED_LIBS ${FOUNDATION})
endif()
endif()
list(APPEND TGFX_COMMON_STATIC_VENDORS pathkit)
list(APPEND TGFX_COMMON_INCLUDES third_party/pathkit)
list(APPEND TGFX_COMMON_STATIC_VENDORS skcms)
list(APPEND TGFX_COMMON_INCLUDES third_party/skcms)
list(APPEND TGFX_COMMON_STATIC_VENDORS highway)
list(APPEND TGFX_COMMON_INCLUDES third_party/highway)
if(TGFX_BUILD_SVG)
list(APPEND TGFX_COMMON_STATIC_VENDORS expat)
list(APPEND TGFX_COMMON_INCLUDES third_party/expat)
list(APPEND COMMON_ALL_FILES
${CMAKE_CURRENT_LIST_DIR}/src/svg/xml/XMLParser.cpp
${CMAKE_CURRENT_LIST_DIR}/src/svg/xml/XMLParser.h
${CMAKE_CURRENT_LIST_DIR}/src/svg/xml/XMLDOM.cpp
${CMAKE_CURRENT_LIST_DIR}/src/svg/xml/DOMParser.cpp
${CMAKE_CURRENT_LIST_DIR}/src/svg/xml/DOMParser.h
)
endif()
find_vendor_libraries(tgfx-vendor STATIC TGFX_COMMON_VENDOR_STATIC_LIBRARIES)
add_library(tgfx-common STATIC ${COMMON_ALL_FILES})
add_dependencies(tgfx-common tgfx-vendor)
target_include_directories(tgfx-common PRIVATE
${CMAKE_CURRENT_LIST_DIR}/include
${CMAKE_CURRENT_LIST_DIR}/src
${TGFX_COMMON_INCLUDES}
)
target_link_libraries(tgfx-common PRIVATE
${TGFX_COMMON_VENDOR_STATIC_LIBRARIES}
${TGFX_COMMON_SHARED_LIBS}
)
endfunction()
|
Beta Was this translation helpful? Give feedback.
Answered by
domchen
Nov 20, 2025
Replies: 1 comment 1 reply
-
|
实际上tgfx是编译为静态库的,静态库的特性就是用到什么打包什么到你的最终程序里。所以这个天然是就是你要的结果。并不需要刻意拆封模块。我们最早连layer模块都是不加开关的,也是用到就会打包,没用到就没有任何增量。后来是因为和SVG,PDF模块理解上更加统一才加了模块开关。 |
Beta Was this translation helpful? Give feedback.
1 reply
Answer selected by
domchen
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
实际上tgfx是编译为静态库的,静态库的特性就是用到什么打包什么到你的最终程序里。所以这个天然是就是你要的结果。并不需要刻意拆封模块。我们最早连layer模块都是不加开关的,也是用到就会打包,没用到就没有任何增量。后来是因为和SVG,PDF模块理解上更加统一才加了模块开关。