Skip to content

Commit

Permalink
Replace all sed commands with patch
Browse files Browse the repository at this point in the history
  • Loading branch information
rocka committed Apr 25, 2024
1 parent a242121 commit 3d7fa0e
Show file tree
Hide file tree
Showing 8 changed files with 85 additions and 8 deletions.
29 changes: 29 additions & 0 deletions patches/libhangul.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8aafe38..edc76dd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -50,7 +50,6 @@ set(LIBHANGUL_LIBRARY_DIR "${CMAKE_INSTALL_LIBDIR}")
add_subdirectory(hangul)
add_subdirectory(data/hanja)
add_subdirectory(data/keyboards)
-add_subdirectory(tools)
add_subdirectory(po)

if(BUILD_TESTING)
diff --git a/hangul/CMakeLists.txt b/hangul/CMakeLists.txt
index 14fde95..399beb6 100644
--- a/hangul/CMakeLists.txt
+++ b/hangul/CMakeLists.txt
@@ -45,9 +45,9 @@ add_library(hangul

target_compile_definitions(hangul
PRIVATE -DHAVE_CONFIG_H
- PRIVATE -DLOCALEDIR=\"${CMAKE_INSTALL_FULL_LOCALEDIR}\"
- PRIVATE -DLIBHANGUL_DEFAULT_HANJA_DIC=\"${CMAKE_INSTALL_FULL_DATADIR}/${CMAKE_PROJECT_NAME}/hanja/hanja.txt\"
- PRIVATE -DLIBHANGUL_DATA_DIR=\"${CMAKE_INSTALL_FULL_DATADIR}/${CMAKE_PROJECT_NAME}\"
+ PRIVATE -DLOCALEDIR=\"${CMAKE_INSTALL_LOCALEDIR}\"
+ PRIVATE -DLIBHANGUL_DEFAULT_HANJA_DIC=\"${CMAKE_INSTALL_DATADIR}/${CMAKE_PROJECT_NAME}/hanja/hanja.txt\"
+ PRIVATE -DLIBHANGUL_DATA_DIR=\"${CMAKE_INSTALL_DATADIR}/${CMAKE_PROJECT_NAME}\"
PRIVATE -DTOP_SRCDIR=\"${CMAKE_SOURCE_DIR}\"
)

12 changes: 12 additions & 0 deletions patches/marisa-tire.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d89d928..6ba6a32 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -49,6 +49,7 @@ add_library(marisa
${MARISA_SRC}
)

+target_compile_options(marisa PRIVATE "-ffile-prefix-map=${CMAKE_CURRENT_SOURCE_DIR}=.")
install(TARGETS marisa
EXPORT marisa-targets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
14 changes: 14 additions & 0 deletions patches/opencc.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1acb75a9..05198910 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -210,7 +210,8 @@ if(NOT USE_SYSTEM_MARISA)
message(STATUS "Use bundled marisa library.")
add_subdirectory(deps/marisa-0.2.6)
else()
- find_library(LIBMARISA NAMES marisa)
+ find_package(marisa)
+ set(LIBMARISA marisa)
if (LIBMARISA)
message(STATUS "libmarisa found: ${LIBMARISA}")
else()
13 changes: 13 additions & 0 deletions patches/zstd.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/build/cmake/lib/CMakeLists.txt b/build/cmake/lib/CMakeLists.txt
index 30349586b..0e0646dbd 100644
--- a/build/cmake/lib/CMakeLists.txt
+++ b/build/cmake/lib/CMakeLists.txt
@@ -134,7 +134,8 @@ if (ZSTD_BUILD_SHARED)
endif ()

if (ZSTD_BUILD_STATIC)
+ target_compile_options(libzstd_static PRIVATE "-ffile-prefix-map=${CMAKE_CURRENT_SOURCE_DIR}=.")
set_target_properties(
libzstd_static
PROPERTIES
POSITION_INDEPENDENT_CODE On
13 changes: 8 additions & 5 deletions src/Rules/LibHangul.hs
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,14 @@ libhangulRule = do
useCMake $
(cmakeBuilder "libhangul")
{ preBuild = BuildAction $ \_ src -> do
-- disable executable
cmd_ (Cwd src) Shell "sed -i '53s|add_subdirectory(tools)||' CMakeLists.txt"
cmd_ (Cwd src) Shell "sed -i '48s|FULL_LOCALEDIR|LOCALEDIR|' hangul/CMakeLists.txt"
cmd_ (Cwd src) Shell "sed -i '49,50s|FULL_DATADIR|DATADIR|' hangul/CMakeLists.txt",
cmakeFlags = const ["-DBUILD_SHARED_LIBS=OFF", "-DENABLE_EXTERNAL_KEYBOARDS=OFF"]
cmd_ (Cwd src) "git checkout ."
cmd_ (Cwd src) "git apply ../patches/libhangul.patch",
cmakeFlags =
const
[ "-DBUILD_SHARED_LIBS=OFF",
"-DENABLE_EXTERNAL_KEYBOARDS=OFF",
"-DENABLE_UNIT_TEST=OFF"
]
}
"libhangul" ~> do
env <- getAndroidEnv
Expand Down
4 changes: 3 additions & 1 deletion src/Rules/Marisa.hs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ marisaRule = do
useCMake $
(cmakeBuilder "marisa")
{ source = const $ pure "marisa-trie",
preBuild = BuildAction $ \_ src -> cmd_ (Cwd src) Shell "sed -i '52s|install(TARGETS marisa.*|target_compile_options\\(marisa PRIVATE \"-ffile-prefix-map=${CMAKE_CURRENT_SOURCE_DIR}=.\"\\)\\n\\0|' CMakeLists.txt",
preBuild = BuildAction $ \_ src -> do
cmd_ (Cwd src) "git checkout ."
cmd_ (Cwd src) "git apply ../patches/marisa-tire.patch",
cmakeFlags = const ["-DBUILD_SHARED_LIBS=OFF"]
}
"marisa" ~> buildWithAndroidEnv buildMarisa MarisaTrie
4 changes: 3 additions & 1 deletion src/Rules/OpenCC.hs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ openccRule = do
(cmakeBuilder "opencc")
{ source = const $ pure "OpenCC",
-- use prebuilt marisa
preBuild = BuildAction $ \_ src -> cmd_ (Cwd src) Shell "sed -i '213s|find_library(LIBMARISA NAMES marisa)|find_package(marisa)\\nset(LIBMARISA marisa)|' CMakeLists.txt",
preBuild = BuildAction $ \_ src -> do
cmd_ (Cwd src) "git checkout ."
cmd_ (Cwd src) "git apply ../patches/opencc.patch",
cmakeFlags = \BuildEnv {..} ->
[ "-DSHARE_INSTALL_PREFIX=share",
"-DINCLUDE_INSTALL_DIR=include",
Expand Down
4 changes: 3 additions & 1 deletion src/Rules/ZSTD.hs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ zstdRule = do
useCMake $
(cmakeBuilder "zstd")
{ cmakeFile = Just $ "build" </> "cmake",
preBuild = BuildAction $ \_ src -> cmd_ (Cwd src) Shell "sed -i '137s|set_target_properties(.*|target_compile_options(libzstd_static PRIVATE \"-ffile-prefix-map=${CMAKE_CURRENT_SOURCE_DIR}=.\")\\n\\0|' build/cmake/lib/CMakeLists.txt",
preBuild = BuildAction $ \_ src -> do
cmd_ (Cwd src) "git checkout ."
cmd_ (Cwd src) "git apply ../patches/zstd.patch",
cmakeFlags =
const
[ "-DZSTD_LEGACY_SUPPORT=OFF",
Expand Down

0 comments on commit 3d7fa0e

Please sign in to comment.