aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcongzhangzh <congzhangzh@users.noreply.github.com>2018-03-08 09:19:20 +0800
committerRobert Schumacher <roschuma@microsoft.com>2018-03-07 17:19:20 -0800
commita6d56f88e5bb29c99b198e4ff2eee6bed24d4423 (patch)
treee407079a3fe0e76329ec7e575a12f7e71819d437
parent1b4bc5e27eeb037c299d3f57e9bed7e3c20c6d76 (diff)
downloadvcpkg-a6d56f88e5bb29c99b198e4ff2eee6bed24d4423.tar.gz
vcpkg-a6d56f88e5bb29c99b198e4ff2eee6bed24d4423.zip
add armadillo (#2954)
* init add armadillo * [armadillo] Disable wrapper lib. Generate appropriate cmake usage information.
-rw-r--r--ports/armadillo/ArmadilloConfig.cmake4
-rw-r--r--ports/armadillo/CONTROL3
-rw-r--r--ports/armadillo/disable-wrapper.patch50
-rw-r--r--ports/armadillo/portfile.cmake39
-rw-r--r--ports/armadillo/usage5
5 files changed, 101 insertions, 0 deletions
diff --git a/ports/armadillo/ArmadilloConfig.cmake b/ports/armadillo/ArmadilloConfig.cmake
new file mode 100644
index 000000000..4658b665c
--- /dev/null
+++ b/ports/armadillo/ArmadilloConfig.cmake
@@ -0,0 +1,4 @@
+set(ARMADILLO_FOUND TRUE)
+set(ARMADILLO_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../include")
+set(ARMADILLO_LIBRARY_DIRS)
+set(ARMADILLO_LIBRARIES)
diff --git a/ports/armadillo/CONTROL b/ports/armadillo/CONTROL
new file mode 100644
index 000000000..59a3ba1f4
--- /dev/null
+++ b/ports/armadillo/CONTROL
@@ -0,0 +1,3 @@
+Source: armadillo
+Version: 8.400.0-1
+Description: Armadillo is a high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use
diff --git a/ports/armadillo/disable-wrapper.patch b/ports/armadillo/disable-wrapper.patch
new file mode 100644
index 000000000..06eb4a776
--- /dev/null
+++ b/ports/armadillo/disable-wrapper.patch
@@ -0,0 +1,50 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7924a8f..853c2ee 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -27,7 +27,7 @@ include(CheckLibraryExists)
+ ## You will then need to link your programs with -lblas -llapack instead of -larmadillo
+ ## If you're using OpenBLAS, link your programs with -lopenblas -llapack instead of -larmadillo
+
+-set(ARMA_USE_WRAPPER true)
++set(ARMA_USE_WRAPPER false)
+
+
+ # the settings below will be automatically configured by the rest of this script
+@@ -379,7 +379,7 @@ message(STATUS "Generating ${PROJECT_BINARY_DIR}/tmp/include/config.hpp")
+ configure_file(${PROJECT_BINARY_DIR}/tmp/include/armadillo_bits/config.hpp.cmake ${PROJECT_BINARY_DIR}/tmp/include/armadillo_bits/config.hpp)
+
+ message(STATUS "Generating ${PROJECT_SOURCE_DIR}/examples/Makefile")
+-configure_file(${PROJECT_SOURCE_DIR}/examples/Makefile.cmake ${PROJECT_SOURCE_DIR}/examples/Makefile)
++#configure_file(${PROJECT_SOURCE_DIR}/examples/Makefile.cmake ${PROJECT_SOURCE_DIR}/examples/Makefile)
+
+
+ include_directories(${PROJECT_BINARY_DIR}/tmp/include/ ${CMAKE_REQUIRED_INCLUDES})
+@@ -439,11 +439,13 @@ PATTERN "*~" EXCLUDE
+ PATTERN "*orig" EXCLUDE
+ )
+
++if(ARMA_USE_WRAPPER)
+ install(TARGETS armadillo EXPORT ArmadilloLibraryDepends
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+-
++endif()
++
+ # Export the package for use from the build-tree
+ # (this registers the build-tree with a global CMake-registry)
+ export(PACKAGE armadillo)
+@@ -465,10 +467,11 @@ configure_file(${PROJECT_SOURCE_DIR}/cmake_aux/InstallFiles/ArmadilloConfigVersi
+ "${PROJECT_BINARY_DIR}/ArmadilloConfigVersion.cmake" @ONLY)
+
+ # Install the export set for use with the install-tree
++if(ARMA_USE_WRAPPER)
+ install(EXPORT ArmadilloLibraryDepends DESTINATION
+ "${CMAKE_INSTALL_DATADIR}/Armadillo/CMake"
+ COMPONENT dev)
+-
++endif()
+
+ ## GLOBAL INSTALL FILES
+ # Create ArmadilloConfig.cmake file for the use from the install tree
diff --git a/ports/armadillo/portfile.cmake b/ports/armadillo/portfile.cmake
new file mode 100644
index 000000000..b8240089c
--- /dev/null
+++ b/ports/armadillo/portfile.cmake
@@ -0,0 +1,39 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ message("Armadillo only supports static library linkage")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+#as conradsnicta/armadillo-code has no release, and the link http://sourceforge.net/projects/arma/files/armadillo-8.400.0.tar.xz is not worked, I use the latest commit for 8.400.x branch
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO conradsnicta/armadillo-code
+ REF a25f66da4c27d40a4a7699199cbf4dc747e712a7
+ SHA512 bf5e1de18c38503e46f72f4f9f145477b6b782baf0df42600acb8811c7a07a5d8c0cd2ac3015d4169c961876e4cbb0457a7c1417b55ba52c98d4f78d145f9ae6
+ HEAD_REF unstable
+)
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES ${CMAKE_CURRENT_LIST_DIR}/disable-wrapper.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DDETECT_HDF5=false
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/Armadillo/CMake)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/ArmadilloConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/Armadillo)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/Armadillo RENAME copyright)
diff --git a/ports/armadillo/usage b/ports/armadillo/usage
new file mode 100644
index 000000000..26d82f0ef
--- /dev/null
+++ b/ports/armadillo/usage
@@ -0,0 +1,5 @@
+The package armadillo is compatible with built-in CMake targets:
+
+ find_package(Armadillo CONFIG REQUIRED)
+ target_include_directories(main PRIVATE ${ARMADILLO_INCLUDE_DIRS})
+ target_link_libraries(main PRIVATE ${ARMADILLO_LIBRARIES})