aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxDarKraDx <14582891+xdarkradx@users.noreply.github.com>2019-02-21 17:39:10 -0500
committerCodiferous <44823842+Codiferous@users.noreply.github.com>2019-02-21 14:39:10 -0800
commit434b30185d10a2fd27790d08f0f5678813c09f1c (patch)
treebcc59b21bb885bd576e0779f57594bb9fb950caa
parent0396f805607c67b02f4d795f05f031b39afa634c (diff)
downloadvcpkg-434b30185d10a2fd27790d08f0f5678813c09f1c.tar.gz
vcpkg-434b30185d10a2fd27790d08f0f5678813c09f1c.zip
Add X-Plane SDK support (#5408)
* Add X-Plane SDK support The x-plane SDK website claims that the SDK is only compatible with x64. The PR that adds support for this fails in x86, so I'm disallow x86 builds to align with the x-plane documentation. The x-plane SDK website's examples expect that the sdk headers are at the root of the include path. I'm adjusting this port to align with those samples, as we want examples to "just work" as much as possible.
-rw-r--r--ports/x-plane/CONTROL3
-rw-r--r--ports/x-plane/portfile.cmake44
2 files changed, 47 insertions, 0 deletions
diff --git a/ports/x-plane/CONTROL b/ports/x-plane/CONTROL
new file mode 100644
index 000000000..a2b267ed0
--- /dev/null
+++ b/ports/x-plane/CONTROL
@@ -0,0 +1,3 @@
+Source: x-plane
+Version: 3.0.1
+Description: The X-Plane Plugin SDK. \ No newline at end of file
diff --git a/ports/x-plane/portfile.cmake b/ports/x-plane/portfile.cmake
new file mode 100644
index 000000000..8946e4eb9
--- /dev/null
+++ b/ports/x-plane/portfile.cmake
@@ -0,0 +1,44 @@
+include(vcpkg_common_functions)
+
+if (VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
+ message(FATAL_ERROR "the x-plane SDK cannot be built for the x86 architecture")
+endif()
+
+vcpkg_download_distfile(
+ OUT_SOURCE_PATH
+ URLS http://developer.x-plane.com/wp-content/plugins/code-sample-generation/sample_templates/XPSDK301.zip
+ FILENAME XPSDK301.zip
+ SHA512 3044d606039be8230f35a5992d322d4c009b4056f8fb17e929a9f5c2204c084e2c83ddad10801b21727645ec957c8942b83938f81256ec3778dbe75df525e62a
+)
+
+vcpkg_extract_source_archive(
+ ${OUT_SOURCE_PATH} ${CURRENT_PACKAGES_DIR}/temp/
+)
+
+file(MAKE_DIRECTORY
+ ${CURRENT_PACKAGES_DIR}/include/x-plane/
+ ${CURRENT_PACKAGES_DIR}/lib
+ ${CURRENT_PACKAGES_DIR}/debug/lib
+)
+
+file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/CHeaders/Widgets/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/CHeaders/Wrappers/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/CHeaders/XPLM/ DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Win/XPLM_64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
+ file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Win/XPWidgets_64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
+ file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Win/XPLM_64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
+ file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Win/XPWidgets_64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
+elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Mac/XPLM.framework/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
+ file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Mac/XPWidgets.framework/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib/)
+ file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Mac/XPLM.framework/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
+ file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/Libraries/Mac/XPWidgets.framework/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/)
+endif()
+
+# Handle copyright
+file(COPY ${CURRENT_PACKAGES_DIR}/temp/SDK/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/x-plane/)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/x-plane/license.txt ${CURRENT_PACKAGES_DIR}/share/x-plane/copyright)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/temp/) \ No newline at end of file