aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/ecos
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/ecos')
-rw-r--r--vcpkg/ports/ecos/CMakeLists.txt49
-rw-r--r--vcpkg/ports/ecos/portfile.cmake22
-rw-r--r--vcpkg/ports/ecos/vcpkg.json15
3 files changed, 86 insertions, 0 deletions
diff --git a/vcpkg/ports/ecos/CMakeLists.txt b/vcpkg/ports/ecos/CMakeLists.txt
new file mode 100644
index 0000000..231b31f
--- /dev/null
+++ b/vcpkg/ports/ecos/CMakeLists.txt
@@ -0,0 +1,49 @@
+cmake_minimum_required(VERSION 3.14)
+project(ecos C)
+
+#include(GNUInstallDirs)
+
+set(EXTERNAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/external)
+
+set(SUITESPARSE ${EXTERNAL_SRC}/SuiteSparse_config)
+add_library(ecos-suitesparse INTERFACE)
+target_sources(ecos-suitesparse INTERFACE $<BUILD_INTERFACE:${SUITESPARSE}/SuiteSparse_config.h> $<INSTALL_INTERFACE:include/ecos>)
+target_include_directories(ecos-suitesparse INTERFACE $<BUILD_INTERFACE:${SUITESPARSE}> $<INSTALL_INTERFACE:include/ecos>)
+target_compile_definitions(ecos-suitesparse INTERFACE DLONG LDL_LONG)
+
+set(AMD_SRC ${EXTERNAL_SRC}/amd/src)
+set(AMD_INCLUDE ${EXTERNAL_SRC}/amd/include)
+add_library(ecos-amd STATIC
+ ${AMD_SRC}/amd_1.c ${AMD_SRC}/amd_2.c ${AMD_SRC}/amd_aat.c ${AMD_SRC}/amd_control.c ${AMD_SRC}/amd_defaults.c ${AMD_SRC}/amd_dump.c ${AMD_SRC}/amd_global.c ${AMD_SRC}/amd_info.c ${AMD_SRC}/amd_order.c ${AMD_SRC}/amd_post_tree.c ${AMD_SRC}/amd_postorder.c ${AMD_SRC}/amd_preprocess.c ${AMD_SRC}/amd_valid.c
+)
+file(GLOB AMD_HEADERS ${EXTERNAL_SRC}/amd/include/*.h)
+target_include_directories(ecos-amd PUBLIC $<BUILD_INTERFACE:${AMD_INCLUDE}> $<INSTALL_INTERFACE:include/ecos>)
+target_link_libraries(ecos-amd ecos-suitesparse)
+
+
+add_library(ecos-ldl STATIC
+ ${EXTERNAL_SRC}/ldl/src/ldl.c
+)
+file(GLOB LDL_HEADERS ${EXTERNAL_SRC}/ldl/include/*.h)
+target_include_directories(ecos-ldl PUBLIC $<BUILD_INTERFACE:${EXTERNAL_SRC}/ldl/include/> $<INSTALL_INTERFACE:include/ecos>)
+target_link_libraries(ecos-ldl ecos-suitesparse)
+
+
+add_library(ecos STATIC
+ src/cone.c src/ecos.c src/expcone.c src/preproc.c src/splamm.c src/wright_omega.c src/ctrlc.c src/equil.c src/kkt.c src/spla.c src/timer.c
+)
+file(GLOB ECOS_HEADERS include/*.h)
+target_include_directories(ecos PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include/ecos>)
+target_link_libraries(ecos ecos-amd ecos-ldl)
+
+install(FILES ${SUITESPARSE}/SuiteSparse_config.h DESTINATION "include/ecos/")
+install(FILES ${ECOS_HEADERS} DESTINATION "include/ecos/")
+install(FILES ${LDL_HEADERS} DESTINATION "include/ecos/")
+install(FILES ${AMD_HEADERS} DESTINATION "include/ecos/")
+
+install(TARGETS ecos ecos-amd ecos-ldl ecos-suitesparse EXPORT ecos-targets)
+install(
+ EXPORT ecos-targets
+ FILE ecos-config.cmake
+ DESTINATION share/ecos/
+) \ No newline at end of file
diff --git a/vcpkg/ports/ecos/portfile.cmake b/vcpkg/ports/ecos/portfile.cmake
new file mode 100644
index 0000000..226af88
--- /dev/null
+++ b/vcpkg/ports/ecos/portfile.cmake
@@ -0,0 +1,22 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO embotech/ecos
+ REF "v${VERSION}"
+ SHA512 b79434c194b5681f323b275eff0126f56beba792d270bd1773307cdf33297bee550b13bd2f96f5923dc4b8e200216d897ea01978f65da69dd81f1a669f8fd6e2
+ HEAD_REF develop
+)
+
+file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+)
+
+vcpkg_cmake_install()
+
+file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+vcpkg_cmake_config_fixup(CONFIG_PATH "share/ecos") \ No newline at end of file
diff --git a/vcpkg/ports/ecos/vcpkg.json b/vcpkg/ports/ecos/vcpkg.json
new file mode 100644
index 0000000..4396dab
--- /dev/null
+++ b/vcpkg/ports/ecos/vcpkg.json
@@ -0,0 +1,15 @@
+{
+ "name": "ecos",
+ "version": "2.0.10",
+ "description": "A lightweight conic solver for second-order cone programming.",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}