Преглед на файлове

refactor & feat: 添加依赖安装程序

SongZihuan преди 3 години
родител
ревизия
2bfc768b16
променени са 2 файла, в които са добавени 57 реда и са изтрити 0 реда
  1. 1 0
      CMakeLists.txt
  2. 56 0
      deps/CMakeLists.txt

+ 1 - 0
CMakeLists.txt

@@ -124,6 +124,7 @@ configure_file(${CMAKE_SOURCE_DIR}/include/base.h.in
                @ONLY)
 
 include(deps)  # 安装依赖
+add_subdirectory(deps)
 #include(${CMAKE_CURRENT_LIST_DIR}/lang/hgt.cmake)  # 安装lang库
 add_subdirectory(src)
 include(aFunHeader)

+ 56 - 0
deps/CMakeLists.txt

@@ -0,0 +1,56 @@
+set(DEPS_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "Deps install.")
+
+set(FFlags_ROOT ${DEPS_INSTALL_PREFIX} CACHE PATH "FFlags root.")
+set(dlfcn-win32_ROOT ${DEPS_INSTALL_PREFIX} CACHE PATH "FFlags root.")
+set(PCRE2_ROOT ${DEPS_INSTALL_PREFIX} CACHE PATH "pcre2 root.")
+set(PCRE2_USE_STATIC_LIBS ON CACHE BOOL "")
+
+if (WIN32 AND NOT CYGWIN)  # cygwin 不依赖 dl
+    execute_process(
+        COMMAND ${CMAKE_COMMAND} -E make_directory dlfcn-win32
+        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+    )
+
+    add_custom_target(dlfcn-win32-build ALL)
+    add_custom_command(TARGET dlfcn-win32-build POST_BUILD
+            COMMAND ${CMAKE_COMMAND}
+                    "${CMAKE_CURRENT_LIST_DIR}/dlfcn-win32"
+                    "-DCMAKE_INSTALL_PREFIX:PATH=${dlfcn-win32_ROOT}"
+                    "-G ${CMAKE_GENERATOR}"
+            COMMAND ${CMAKE_COMMAND} --build .
+            COMMAND ${CMAKE_COMMAND} --install .
+            WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/dlfcn-win32
+            COMMENT "Build dlfcn-win32")
+endif()
+
+execute_process(
+        COMMAND ${CMAKE_COMMAND} -E make_directory fflags
+        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+)
+
+add_custom_target(FFlags-build ALL)
+add_custom_command(TARGET FFlags-build POST_BUILD
+        COMMAND ${CMAKE_COMMAND}
+        "${CMAKE_CURRENT_LIST_DIR}/fflags"
+        "-DCMAKE_INSTALL_PREFIX:PATH=${FFlags_ROOT}"
+        "-G ${CMAKE_GENERATOR}"
+        COMMAND ${CMAKE_COMMAND} --build .
+        COMMAND ${CMAKE_COMMAND} --install .
+        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/fflags
+        COMMENT "Build FFlags")
+
+execute_process(
+        COMMAND ${CMAKE_COMMAND} -E make_directory pcre2
+        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+)
+
+add_custom_target(PCRE2-build ALL)
+add_custom_command(TARGET PCRE2-build POST_BUILD
+        COMMAND ${CMAKE_COMMAND}
+        "${CMAKE_CURRENT_LIST_DIR}/pcre2"
+        "-DCMAKE_INSTALL_PREFIX:PATH=${PCRE2_ROOT}"
+        "-G ${CMAKE_GENERATOR}"
+        COMMAND ${CMAKE_COMMAND} --build .
+        COMMAND ${CMAKE_COMMAND} --install .
+        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/pcre2
+        COMMENT "Build PCRE2")