From 67e4272121ee24eb743d5b38b5e56004c6490aae Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Wed, 22 Dec 2021 06:03:46 +0100 Subject: [PATCH] [pdcurses] Revise portfile (#22092) * Use vcpkg_build_nmake * Update versions * Use INSTALLDIR * Update versions --- ports/pdcurses/nmake-install.patch | 21 +++++++ ports/pdcurses/portfile.cmake | 95 ++++++++++-------------------- ports/pdcurses/vcpkg.json | 5 +- scripts/ci.baseline.txt | 6 -- versions/baseline.json | 2 +- versions/p-/pdcurses.json | 5 ++ 6 files changed, 62 insertions(+), 72 deletions(-) create mode 100644 ports/pdcurses/nmake-install.patch diff --git a/ports/pdcurses/nmake-install.patch b/ports/pdcurses/nmake-install.patch new file mode 100644 index 0000000000..892550352f --- /dev/null +++ b/ports/pdcurses/nmake-install.patch @@ -0,0 +1,21 @@ +diff --git a/wincon/Makefile.vc b/wincon/Makefile.vc +index 80c4689..1bae388 100644 +--- a/wincon/Makefile.vc ++++ b/wincon/Makefile.vc +@@ -118,3 +118,16 @@ tui.obj: $(demodir)\tui.c $(demodir)\tui.h + + tuidemo.obj: $(demodir)\tuidemo.c + $(BUILD) -I$(demodir) $(demodir)\tuidemo.c ++ ++install: all ++ -mkdir $(INSTALLDIR)\lib ++ copy pdcurses.lib $(INSTALLDIR)\lib ++!ifdef DLL ++ -mkdir $(INSTALLDIR)\bin ++ copy pdcurses.dll $(INSTALLDIR)\bin ++!endif ++!ifndef SKIP_HEADERS ++ -mkdir $(INSTALLDIR)\include ++ copy $(PDCURSES_SRCDIR)\curses.h $(INSTALLDIR)\include ++ copy $(PDCURSES_SRCDIR)\panel.h $(INSTALLDIR)\include ++!endif diff --git a/ports/pdcurses/portfile.cmake b/ports/pdcurses/portfile.cmake index 81b201c1b6..7869f2185a 100644 --- a/ports/pdcurses/portfile.cmake +++ b/ports/pdcurses/portfile.cmake @@ -1,73 +1,42 @@ -vcpkg_check_linkage(ONLY_DYNAMIC_CRT) - -find_program(NMAKE nmake) - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wmcbrine/PDCurses REF 6c1f95c4fa9f9f105879c2d99dd72a5bf335c046 # 3.9 SHA512 2d682a3516baaa58a97854aca64d985768b7af76d998240b54afc57ddf2a44894835a1748888f8dd7c1cc8045ede77488284f8adf1b73878879b4b4d3391218d HEAD_REF master + PATCHES + nmake-install.patch ) - -set(PDC_NMAKE_CMD ${NMAKE} /A -f ${SOURCE_PATH}/wincon/Makefile.vc WIDE=Y UTF8=Y) - -set(PDC_NMAKE_CWD ${SOURCE_PATH}/wincon) -set(PDC_PDCLIB ${SOURCE_PATH}/wincon/pdcurses) - -if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - set(PDC_NMAKE_CMD ${PDC_NMAKE_CMD} DLL=Y) -endif() - -message(STATUS "Build ${TARGET_TRIPLET}-rel") -vcpkg_execute_required_process( - COMMAND ${PDC_NMAKE_CMD} - WORKING_DIRECTORY ${PDC_NMAKE_CWD} - LOGNAME build-${TARGET_TRIPLET}-rel -) -message(STATUS "Build ${TARGET_TRIPLET}-rel done") - -file ( - COPY ${PDC_PDCLIB}.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/lib -) -if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - file ( - COPY ${PDC_PDCLIB}.dll - DESTINATION ${CURRENT_PACKAGES_DIR}/bin + +if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) + cmake_path(NATIVE_PATH SOURCE_PATH PDCURSES_SRCDIR) + set(DLL_OPTION "") + if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + set(DLL_OPTION DLL=Y) + endif() + vcpkg_build_nmake( + SOURCE_PATH "${SOURCE_PATH}/wincon" + PROJECT_NAME Makefile.vc + ENABLE_INSTALL + OPTIONS + /A + "PDCURSES_SRCDIR=${PDCURSES_SRCDIR}" + WIDE=Y + UTF8=Y + ${DLL_OPTION} + OPTIONS_RELEASE + "CFLAGS=-D_CRT_SECURE_NO_WARNINGS" + "LDFLAGS=" + OPTIONS_DEBUG + "CFLAGS=-D_CRT_SECURE_NO_WARNINGS -DPDCDEBUG" + "LDFLAGS=-debug" + DEBUG=Y + SKIP_HEADERS=Y ) + vcpkg_copy_pdbs() + if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/curses.h" "#ifdef PDC_DLL_BUILD" "#if 1") + endif() endif() -message(STATUS "Build ${TARGET_TRIPLET}-dbg") -vcpkg_execute_required_process( - COMMAND ${PDC_NMAKE_CMD} DEBUG=Y - WORKING_DIRECTORY ${PDC_NMAKE_CWD} - LOGNAME build-${TARGET_TRIPLET}-dbg -) -message(STATUS "Build ${TARGET_TRIPLET}-dbg done") - -file ( - INSTALL ${PDC_PDCLIB}.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib -) -if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - file ( - INSTALL ${PDC_PDCLIB}.dll - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin - ) -endif() - -file( - INSTALL ${SOURCE_PATH}/curses.h ${SOURCE_PATH}/panel.h - DESTINATION ${CURRENT_PACKAGES_DIR}/include -) - -if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - file(READ ${CURRENT_PACKAGES_DIR}/include/curses.h _contents) - string(REPLACE "#ifdef PDC_DLL_BUILD" "#if 1" _contents "${_contents}") - file(WRITE ${CURRENT_PACKAGES_DIR}/include/curses.h "${_contents}") -endif() - -file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/pdcurses RENAME copyright) - -vcpkg_copy_pdbs() \ No newline at end of file +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/ports/pdcurses/vcpkg.json b/ports/pdcurses/vcpkg.json index 59398f2fe4..fa26f9b12d 100644 --- a/ports/pdcurses/vcpkg.json +++ b/ports/pdcurses/vcpkg.json @@ -1,7 +1,8 @@ { "name": "pdcurses", "version-string": "3.9", - "port-version": 2, + "port-version": 3, "description": "Public Domain Curses - a curses library for environments that don't fit the termcap/terminfo model.", - "homepage": "https://pdcurses.org/" + "homepage": "https://pdcurses.org/", + "supports": "windows & !uwp & !mingw" } diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 576a6433dc..c7f6083e37 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1120,12 +1120,6 @@ pdal:x64-linux=fail pdal:x64-osx=fail pdal-c:x64-windows-static=fail pdal-c:x64-windows-static-md=fail -pdcurses:arm-uwp=fail -pdcurses:x64-linux=fail -pdcurses:x64-osx=fail -pdcurses:x64-uwp=fail -pdcurses:x64-windows-static=fail -pdcurses:x64-windows-static-md=fail pfring:arm64-windows=fail pfring:arm-uwp=fail pfring:x64-uwp=fail diff --git a/versions/baseline.json b/versions/baseline.json index 79a26be2cf..f18a954d0f 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -5214,7 +5214,7 @@ }, "pdcurses": { "baseline": "3.9", - "port-version": 2 + "port-version": 3 }, "pdqsort": { "baseline": "2019-07-30", diff --git a/versions/p-/pdcurses.json b/versions/p-/pdcurses.json index 2858833906..68869abfcd 100644 --- a/versions/p-/pdcurses.json +++ b/versions/p-/pdcurses.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "e09ec910aff6b25bd1e1554b15dce08656b3f3d5", + "version-string": "3.9", + "port-version": 3 + }, { "git-tree": "190eafb5554bf1f484edff1aa94598bac3ff9830", "version-string": "3.9",