Skip to content

Commit

Permalink
[xsimd] Add new port (microsoft#5194)
Browse files Browse the repository at this point in the history
* [xsimd] Add new port

* Add a header include guard to xsimd's algorithm.hpp

algorithm.hpp is not guarded by a header include guard, which can cause
difficulty for users. xhihaoy asked that we be sure to include this
patch because it caused a lot of pain.
  • Loading branch information
myd7349 authored and Codiferous committed Jan 27, 2019
1 parent ebb2d1a commit 65d8667
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 0 deletions.
7 changes: 7 additions & 0 deletions ports/xsimd/CONTROL
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Source: xsimd
Version: 7.1.2
Description: Modern, portable C++ wrappers for SIMD intrinsics

Feature: xcomplex
Description: xtl complex support
Build-Depends: xtl
24 changes: 24 additions & 0 deletions ports/xsimd/PatchHeaderIncludeGuard.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
diff --git a/include/xsimd/stl/algorithms.hpp b/include/xsimd/stl/algorithms.hpp
index 4cb2b79..1590b89 100644
--- a/include/xsimd/stl/algorithms.hpp
+++ b/include/xsimd/stl/algorithms.hpp
@@ -6,6 +6,9 @@
* The full license is in the file LICENSE, distributed with this software. *
****************************************************************************/

+#ifndef XSIMD_ALGORITHMS_HPP
+#define XSIMD_ALGORITHMS_HPP
+
#include "xsimd/memory/xsimd_load_store.hpp"

namespace xsimd
@@ -126,4 +129,6 @@ namespace xsimd

#undef XSIMD_LOOP_MACRO
}
-}
\ No newline at end of file
+}
+
+#endif
\ No newline at end of file
40 changes: 40 additions & 0 deletions ports/xsimd/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# header-only library

include(vcpkg_common_functions)

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO QuantStack/xsimd
REF 7.1.2
SHA512 9479eb6188a68388d470e38ec7b08aaeeb03a1028a574258b52e1c39ce0b1b1aaf97a5cb898447f68c989badd23903ba7a059f5daf59160c660ba751d668c0eb
HEAD_REF master
PATCHES PatchHeaderIncludeGuard.patch
)

if("xcomplex" IN_LIST FEATURES)
set(ENABLE_XTL_COMPLEX ON)
else()
set(ENABLE_XTL_COMPLEX OFF)
endif()

vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DENABLE_FALLBACK=OFF
-DENABLE_XTL_COMPLEX=${ENABLE_XTL_COMPLEX}
-DBUILD_TESTS=OFF
-DDOWNLOAD_GTEST=OFF
)

vcpkg_install_cmake()

vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT})

file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib)

# Handle copyright
configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)

# CMake integration test
vcpkg_test_cmake(PACKAGE_NAME ${PORT})

0 comments on commit 65d8667

Please sign in to comment.