From e1870a91ff26c099ca92599fa7d7bb06b81fbc58 Mon Sep 17 00:00:00 2001 From: JackBoosY <47264268+JackBoosY@users.noreply.github.com> Date: Tue, 16 Jul 2019 01:41:11 +0800 Subject: [PATCH] [sqlite3-tool]Fix build error on arm/uwp platform. (#7202) --- ports/sqlite3/CMakeLists.txt | 1 - ports/sqlite3/CONTROL | 2 +- ports/sqlite3/fix-arm-uwp.patch | 33 +++++++++++++++++++++++++++++++++ ports/sqlite3/portfile.cmake | 1 + 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 ports/sqlite3/fix-arm-uwp.patch diff --git a/ports/sqlite3/CMakeLists.txt b/ports/sqlite3/CMakeLists.txt index 16f529dafb..64ff002623 100644 --- a/ports/sqlite3/CMakeLists.txt +++ b/ports/sqlite3/CMakeLists.txt @@ -36,7 +36,6 @@ endif() if(NOT SQLITE3_SKIP_TOOLS) add_executable(sqlite3-bin shell.c) - set_target_properties(sqlite3-bin PROPERTIES OUTPUT_NAME sqlite3) target_link_libraries(sqlite3-bin PRIVATE sqlite3) install(TARGETS sqlite3-bin sqlite3 RUNTIME DESTINATION tools diff --git a/ports/sqlite3/CONTROL b/ports/sqlite3/CONTROL index 829b662549..081ea47b8d 100644 --- a/ports/sqlite3/CONTROL +++ b/ports/sqlite3/CONTROL @@ -1,5 +1,5 @@ Source: sqlite3 -Version: 3.28.0-1 +Version: 3.28.0-2 Homepage: https://sqlite.org/ Description: SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. diff --git a/ports/sqlite3/fix-arm-uwp.patch b/ports/sqlite3/fix-arm-uwp.patch new file mode 100644 index 0000000000..03e0929653 --- /dev/null +++ b/ports/sqlite3/fix-arm-uwp.patch @@ -0,0 +1,33 @@ +diff --git a/shell.c b/shell.c +index 10d8cc1..99f37a5 100644 +--- a/shell.c ++++ b/shell.c +@@ -316,7 +316,11 @@ static int hasTimer(void){ + */ + hProcess = GetCurrentProcess(); + if( hProcess ){ ++#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) + HINSTANCE hinstLib = LoadLibrary(TEXT("Kernel32.dll")); ++#else ++ HINSTANCE hinstLib = LoadPackagedLibrary(TEXT("Kernel32.dll"), 0); ++#endif + if( NULL != hinstLib ){ + getProcessTimesAddr = + (GETPROCTIMES) GetProcAddress(hinstLib, "GetProcessTimes"); +@@ -2437,10 +2441,16 @@ static int writeFile( + if( zUnicodeName==0 ){ + return 1; + } ++#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) + hFile = CreateFileW( + zUnicodeName, FILE_WRITE_ATTRIBUTES, 0, NULL, OPEN_EXISTING, + FILE_FLAG_BACKUP_SEMANTICS, NULL + ); ++#else ++ hFile = CreateFile2( ++ zUnicodeName, FILE_WRITE_ATTRIBUTES, 0, OPEN_EXISTING, NULL ++ ); ++#endif + sqlite3_free(zUnicodeName); + if( hFile!=INVALID_HANDLE_VALUE ){ + BOOL bResult = SetFileTime(hFile, NULL, &lastAccess, &lastWrite); diff --git a/ports/sqlite3/portfile.cmake b/ports/sqlite3/portfile.cmake index 131469c12c..b9be874335 100644 --- a/ports/sqlite3/portfile.cmake +++ b/ports/sqlite3/portfile.cmake @@ -13,6 +13,7 @@ vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE ${ARCHIVE} REF ${SQLITE_VERSION} + PATCHES fix-arm-uwp.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})