diff --git a/ports/openfx/CMakeLists.txt b/ports/openfx/CMakeLists.txt new file mode 100644 index 00000000000000..079ff111e3b3db --- /dev/null +++ b/ports/openfx/CMakeLists.txt @@ -0,0 +1,73 @@ +cmake_minimum_required(VERSION 3.20) + +project(openfx VERSION 1.4.0 LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +if(WIN32) + add_compile_definitions(WINDOWS NOMINMAX WIN64) + set(OS_VAR "windows") + set(OFX_ARCH_NAME "Win64") +endif() + +set(OFX_HEADERS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) + +add_library(OpenFx INTERFACE) +target_include_directories(OpenFx + INTERFACE + $ + $ +) + +set(OFX_SUPPORT_HEADERS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Support/include) + +add_library(OfxSupport STATIC + Support/Library/ofxsCore.cpp + Support/Library/ofxsImageEffect.cpp + Support/Library/ofxsInteract.cpp + Support/Library/ofxsLog.cpp + Support/Library/ofxsMultiThread.cpp + Support/Library/ofxsParams.cpp + Support/Library/ofxsProperty.cpp + Support/Library/ofxsPropertyValidation.cpp +) +target_include_directories(OfxSupport + PUBLIC + $ + $ + $ +) +target_link_libraries(OfxSupport INTERFACE OpenFx) +target_compile_features(OfxSupport PUBLIC cxx_std_11) + +install( + TARGETS OpenFx OfxSupport + EXPORT openfx-export + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +install( + EXPORT openfx-export + FILE unofficial-openfxConfig.cmake + NAMESPACE unofficial::openfx:: + DESTINATION "share/unofficial-openfx" +) + +file(GLOB OFX_HEADERS "${OFX_HEADERS_DIR}/*.h" "${OFX_SUPPORT_HEADERS_DIR}/*.h") +install(FILES ${OFX_HEADERS} + DESTINATION include/openfx +) + +include(CMakePackageConfigHelpers) + +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-openfxConfigVersion.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) +install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-openfxConfigVersion.cmake" + DESTINATION "share/unofficial-openfx" +) diff --git a/ports/openfx/portfile.cmake b/ports/openfx/portfile.cmake new file mode 100644 index 00000000000000..fb2c2f38119f5b --- /dev/null +++ b/ports/openfx/portfile.cmake @@ -0,0 +1,22 @@ +string(REPLACE "." "_" UNDERSCORE_VERSION "${VERSION}") + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO AcademySoftwareFoundation/openfx + REF "OFX_Release_${UNDERSCORE_VERSION}_TAG" + SHA512 b20512ea38823167f191b72f1592548df85fbda6cefe47673972874c139641ee91277e78c1e0d57a457b9f864385e6fa0e4a7edcdbf0c7b2eda956c03a3e1e13 + HEAD_REF main +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH}) +vcpkg_cmake_install() +vcpkg_fixup_pkgconfig() +vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-openfx) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/DocSrc") + +configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Support/LICENSE") diff --git a/ports/openfx/usage b/ports/openfx/usage new file mode 100644 index 00000000000000..98a91281e75518 --- /dev/null +++ b/ports/openfx/usage @@ -0,0 +1,7 @@ +The package OpenFX provides CMake targets: + + find_package(unofficial-openfx CONFIG REQUIRED) + # C-based API + target_link_libraries(main PRIVATE unofficial::openfx::OpenFx) + # C++ wrapper + target_link_libraries(main PRIVATE unofficial::openfx::OfxSupport) diff --git a/ports/openfx/vcpkg.json b/ports/openfx/vcpkg.json new file mode 100644 index 00000000000000..33634ae585c0d2 --- /dev/null +++ b/ports/openfx/vcpkg.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", + "name": "openfx", + "version": "1.4", + "maintainers": "Reza Alizadeh Majd , Behnam Binesh ", + "summary": "OpenFX - An open-source plugin API for visual effects", + "homepage": "https://github.com/AcademySoftwareFoundation/openfx", + "license": "BSD-3-Clause", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/versions/baseline.json b/versions/baseline.json index df285840dbefda..931f1d1caef183 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -6364,6 +6364,10 @@ "baseline": "2022-07-18", "port-version": 0 }, + "openfx": { + "baseline": "1.4", + "port-version": 0 + }, "opengl": { "baseline": "2022-12-04", "port-version": 3 diff --git a/versions/o-/openfx.json b/versions/o-/openfx.json new file mode 100644 index 00000000000000..87d2c95a2817cc --- /dev/null +++ b/versions/o-/openfx.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "9bfae0126edf500cbdcb8592715c9bd176b79bfb", + "version": "1.4", + "port-version": 0 + } + ] +}