Browse Source

wineditline: add new package (#7194)

* wineditline: add new package

* lic

* fixup

* keep using .def file

* fix windows + debug

* truncate patchfile

* it is part of patch file already

---------

Co-authored-by: star9029 <[email protected]>
Saikari 3 months ago
parent
commit
91bcdac025
2 changed files with 78 additions and 0 deletions
  1. 55 0
      packages/w/wineditline/patches/2.208/build.diff
  2. 23 0
      packages/w/wineditline/xmake.lua

+ 55 - 0
packages/w/wineditline/patches/2.208/build.diff

@@ -0,0 +1,55 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a9f03d6..f901273 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -2,7 +2,8 @@ cmake_minimum_required (VERSION 2.8.12)
+ project (WinEditLine)
+ set (WinEditLine_VERSION_MAJOR 2)
+ set (WinEditLine_VERSION_MINOR 2)
+-if (MSVC AND MSVC_USE_STATIC_RUNTIME)
++option(BUILD_SHARED_LIBS "Build using shared libraries" ON)
++if (0)
+ foreach(flag_var
+         CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
+         CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 9eb9d88..66a5a8f 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -1,7 +1,9 @@
+ include_directories("${PROJECT_SOURCE_DIR}/src")
+ include_directories("${PROJECT_BINARY_DIR}")
+ include(GenerateExportHeader)
++if(NOT(BUILD_SHARED_LIBS))
+ add_library(edit_static STATIC editline.c fn_complete.c history.c)
++else()
+ add_library(edit SHARED editline.c fn_complete.c history.c libedit.def)
+ set_target_properties(edit PROPERTIES PREFIX "")
+ GENERATE_EXPORT_HEADER(edit
+@@ -10,17 +12,18 @@ GENERATE_EXPORT_HEADER(edit
+   EXPORT_FILE_NAME edit_Export.h
+   STATIC_DEFINE edit_BUILT_AS_STATIC
+ )
+-add_executable(edit_test libedit_test.c)
+-target_link_libraries(edit_test edit)
+-add_executable(edit_test_dll libedit_test_dll.c)
+-install (TARGETS edit edit_test edit_test_dll
+-  DESTINATION "${CMAKE_SOURCE_DIR}/bin${LIB_SUFFIX}")
++endif()
++if(BUILD_SHARED_LIBS)
++install (TARGETS edit
++  RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
++else()
+ install (TARGETS edit_static
+-  DESTINATION "${CMAKE_SOURCE_DIR}/lib${LIB_SUFFIX}")
++  RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
++endif()
+ install (FILES editline/readline.h
+-  DESTINATION "${CMAKE_SOURCE_DIR}/include/editline")
++  DESTINATION "include/editline")
+ string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
+-if (MSVC AND uppercase_CMAKE_BUILD_TYPE MATCHES "DEBUG")
++if (0)
+   install (FILES ${CMAKE_CURRENT_BINARY_DIR}/Debug/edit_static.pdb
+     DESTINATION "${CMAKE_SOURCE_DIR}/lib${LIB_SUFFIX}")
+   install (FILES ${CMAKE_CURRENT_BINARY_DIR}/Debug/edit.pdb

+ 23 - 0
packages/w/wineditline/xmake.lua

@@ -0,0 +1,23 @@
+package("wineditline")
+    set_homepage("http://mingweditline.sourceforge.net")
+    set_description("An EditLine API implementation for the native Windows Console")
+    set_license("BSD-3-Clause")
+
+    add_urls("https://github.com/ptosco/wineditline/archive/refs/tags/wineditline-$(version).tar.gz",
+             "https://github.com/ptosco/wineditline.git")
+
+    add_versions("2.208", "2df14abed2fadebf6e20bc0853b8b9b01f736ea3a5402420e0192029c6a23d80")
+    add_patches("2.208", "patches/2.208/build.diff", "1d1a965c2c07ee930795915a950e3d223b4941229391242d297727e8b5bbbba1")
+
+    add_deps("cmake")
+
+    on_install("mingw", "msys", "windows", function (package)
+        local configs = {}
+        table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:is_debug() and "Debug" or "Release"))
+        table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
+        import("package.tools.cmake").install(package, configs)
+    end)
+
+    on_test(function (package)
+        assert(package:has_cfuncs("history_list", {includes = "editline/readline.h"}))
+    end)