From fc135e20eae801bcd6a20ddb8fba677f61dba5a5 Mon Sep 17 00:00:00 2001 From: zi-m <53815290+zi-m@users.noreply.github.com> Date: Wed, 28 Aug 2019 01:05:16 +0200 Subject: [PATCH] chartdir (#7912) --- ports/chartdir/CONTROL | 4 ++ ports/chartdir/Config.cmake.in | 21 ++++++++ ports/chartdir/chartdir.h | 6 +++ ports/chartdir/portfile.cmake | 96 ++++++++++++++++++++++++++++++++++ ports/chartdir/usage | 4 ++ 5 files changed, 131 insertions(+) create mode 100644 ports/chartdir/CONTROL create mode 100644 ports/chartdir/Config.cmake.in create mode 100644 ports/chartdir/chartdir.h create mode 100644 ports/chartdir/portfile.cmake create mode 100644 ports/chartdir/usage diff --git a/ports/chartdir/CONTROL b/ports/chartdir/CONTROL new file mode 100644 index 000000000..b34dadb6a --- /dev/null +++ b/ports/chartdir/CONTROL @@ -0,0 +1,4 @@ +Source: chartdir +Version: 6.3.1 +Homepage: https://www.advsofteng.com/ +Description: ChartDirector is a powerful chart component for creating professional looking charts for web and windows applications. diff --git a/ports/chartdir/Config.cmake.in b/ports/chartdir/Config.cmake.in new file mode 100644 index 000000000..d943c4a81 --- /dev/null +++ b/ports/chartdir/Config.cmake.in @@ -0,0 +1,21 @@ + +get_filename_component(_chartdir_root "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_chartdir_root "${_chartdir_root}" PATH) +get_filename_component(_chartdir_root "${_chartdir_root}" PATH) + +set(_chartdir_lib "${_chartdir_root}/lib/@CHARTDIR_LIB@") +if (EXISTS "${_chartdir_lib}") + + add_library(chartdir UNKNOWN IMPORTED) + set_target_properties(chartdir PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_chartdir_root}/include") + set_target_properties(chartdir PROPERTIES IMPORTED_LOCATION "${_chartdir_lib}") + set_property(TARGET chartdir APPEND PROPERTY IMPORTED_CONFIGURATIONS) + +else() + + set(chartdir_FOUND FALSE) + +endif() +unset(_chartdir_lib) + +unset(_chartdir_root) diff --git a/ports/chartdir/chartdir.h b/ports/chartdir/chartdir.h new file mode 100644 index 000000000..2fa308a07 --- /dev/null +++ b/ports/chartdir/chartdir.h @@ -0,0 +1,6 @@ +#ifndef __CHARTDIR_H__ +#define __CHARTDIR_H__ + +#include + +#endif // __CHARTDIR_H__ diff --git a/ports/chartdir/portfile.cmake b/ports/chartdir/portfile.cmake new file mode 100644 index 000000000..630d36c94 --- /dev/null +++ b/ports/chartdir/portfile.cmake @@ -0,0 +1,96 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) + +if(TRIPLET_SYSTEM_ARCH MATCHES "arm" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR VCPKG_LIBRARY_LINKAGE STREQUAL static) + + set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +elseif(VCPKG_TARGET_IS_WINDOWS) + + vcpkg_download_distfile(ARCHIVE_FILE + URLS "http://www.advsofteng.net/chartdir_cpp_win.zip" + FILENAME "chartdir_cpp_win-6.3.1.zip" + SHA512 e9841d4416c833f57439a36cb981a9c320884c655f8278a22690f05a215c87f0bba83406b45e03ea384c015a4619852c7a9b36dcc9dbd7d531dee1c07b5cffe9 + ) + + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE_FILE} + REF 6.3.1 + ) + + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(LIBDIR "${SOURCE_PATH}/lib64") + else() + set(LIBDIR "${SOURCE_PATH}/lib32") + endif() + + file(COPY "${LIBDIR}/chartdir60.dll" DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(COPY "${LIBDIR}/chartdir60.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(COPY "${LIBDIR}/chartdir60.dll" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + file(COPY "${LIBDIR}/chartdir60.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + + set(CHARTDIR_LIB "chartdir60.lib") + +elseif(VCPKG_TARGET_IS_OSX) + + vcpkg_download_distfile(ARCHIVE_FILE + URLS "https://www.advsofteng.net/chartdir_cpp_mac.tar.gz" + FILENAME "chartdir_cpp_mac-6.3.1.tar.gz" + SHA512 50a6b8d80a65a1e723808ce6722c7ec8b1457f1c63d187ce487b71b7d1d820f64301729d034ca99ddcea13ec0db8dab9fd14262023c24a6f9ecf196a0cac800d + ) + + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE_FILE} + REF 6.3.1 + ) + + file(COPY "${SOURCE_PATH}/lib/libchartdir.6.dylib" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(COPY "${SOURCE_PATH}/lib/libchartdir.6.dylib" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + + set(CHARTDIR_LIB "libchartdir.6.dylib") + +elseif(VCPKG_TARGET_IS_LINUX) + + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + + vcpkg_download_distfile(ARCHIVE_FILE + URLS "http://www.advsofteng.net/chartdir_cpp_linux_64.tar.gz" + FILENAME "chartdir_cpp_linux_64-6.3.1.tar.gz" + SHA512 e6a3acee3cc5f38304ffa0d3704b1365fcc7a60c8bb688f121caa31efa568b74598b4e10379e84200888d9d8dc3cd7a6a24a944c2d63ca5a146162854c6222a9 + ) + + else() + + vcpkg_download_distfile(ARCHIVE_FILE + URLS "http://www.advsofteng.net/chartdir_cpp_linux.tar.gz" + FILENAME "chartdir_cpp_linux-6.3.1.tar.gz" + SHA512 0a2f2d7c8d53c2f06c302a837f286826b4f48cc5f5bdb55c4de23337bc4188d1652625aee2c8061561d9b5bdef5e0e2a4cdd176d44ca60c1f730e4f38299c5a0 + ) + + endif() + + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE_FILE} + REF 6.3.1 + ) + + file(COPY "${SOURCE_PATH}/lib/libchartdir.so.6.0.3" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(COPY "${SOURCE_PATH}/lib/libchartdir.so.6.0.3" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + + set(CHARTDIR_LIB "libchartdir.so.6.0.3") + + file(COPY ${SOURCE_PATH}/lib/fonts DESTINATION ${CURRENT_PACKAGES_DIR}/share/chartdir) + +endif() + +file(GLOB HEADERS "${SOURCE_PATH}/include/*.h") +file(COPY ${HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include/chartdir) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/chartdir.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +configure_file(${SOURCE_PATH}/LICENSE.TXT ${CURRENT_PACKAGES_DIR}/share/chartdir/copyright COPYONLY) +configure_file(${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in ${CURRENT_PACKAGES_DIR}/share/chartdir/chartdir-config.cmake @ONLY) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/chartdir) diff --git a/ports/chartdir/usage b/ports/chartdir/usage new file mode 100644 index 000000000..a270b780e --- /dev/null +++ b/ports/chartdir/usage @@ -0,0 +1,4 @@ +The package chartdir provides CMake targets: + + find_package(chartdir CONFIG REQUIRED) + target_link_libraries(main PRIVATE chartdir)