aboutsummaryrefslogtreecommitdiff
path: root/cmake/Deps.cmake
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2023-11-30 20:35:25 +0000
committerJosh Rahm <joshuarahm@gmail.com>2023-11-30 20:35:25 +0000
commit1b7b916b7631ddf73c38e3a0070d64e4636cb2f3 (patch)
treecd08258054db80bb9a11b1061bb091c70b76926a /cmake/Deps.cmake
parenteaa89c11d0f8aefbb512de769c6c82f61a8baca3 (diff)
parent4a8bf24ac690004aedf5540fa440e788459e5e34 (diff)
downloadrneovim-aucmd_textputpost.tar.gz
rneovim-aucmd_textputpost.tar.bz2
rneovim-aucmd_textputpost.zip
Merge remote-tracking branch 'upstream/master' into aucmd_textputpostaucmd_textputpost
Diffstat (limited to 'cmake/Deps.cmake')
-rw-r--r--cmake/Deps.cmake56
1 files changed, 56 insertions, 0 deletions
diff --git a/cmake/Deps.cmake b/cmake/Deps.cmake
new file mode 100644
index 0000000000..9966e42084
--- /dev/null
+++ b/cmake/Deps.cmake
@@ -0,0 +1,56 @@
+set(DEPS_INSTALL_DIR "${CMAKE_BINARY_DIR}/usr")
+set(DEPS_BIN_DIR "${DEPS_INSTALL_DIR}/bin")
+set(DEPS_LIB_DIR "${DEPS_INSTALL_DIR}/lib")
+set(DEPS_SHARE_DIR "${DEPS_INSTALL_DIR}/share/lua/5.1")
+
+set(DEPS_BUILD_DIR "${CMAKE_BINARY_DIR}/build")
+set(DEPS_DOWNLOAD_DIR "${DEPS_BUILD_DIR}/downloads")
+
+set(DEPS_CMAKE_ARGS
+ -D CMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -D CMAKE_C_STANDARD=99
+ -D CMAKE_GENERATOR=${CMAKE_GENERATOR}
+ -D CMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
+ -D BUILD_SHARED_LIBS=OFF
+ -D CMAKE_POSITION_INDEPENDENT_CODE=ON
+ -D CMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR})
+if(APPLE)
+ list(APPEND DEPS_CMAKE_ARGS -D CMAKE_FIND_FRAMEWORK=${CMAKE_FIND_FRAMEWORK})
+endif()
+
+set(DEPS_CMAKE_CACHE_ARGS -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES})
+set(EXTERNALPROJECT_OPTIONS DOWNLOAD_NO_PROGRESS TRUE)
+
+# MAKE_PRG
+if(UNIX)
+ find_program(MAKE_PRG NAMES gmake make)
+ if(NOT MAKE_PRG)
+ message(FATAL_ERROR "GNU Make is required to build the dependencies.")
+ else()
+ message(STATUS "Found GNU Make at ${MAKE_PRG}")
+ endif()
+endif()
+# When using make, use the $(MAKE) variable to avoid warning about the job
+# server.
+if(CMAKE_GENERATOR MATCHES "Makefiles")
+ set(MAKE_PRG "$(MAKE)")
+endif()
+if(MINGW AND CMAKE_GENERATOR MATCHES "Ninja")
+ find_program(MAKE_PRG NAMES mingw32-make)
+ if(NOT MAKE_PRG)
+ message(FATAL_ERROR "GNU Make for mingw32 is required to build the dependencies.")
+ else()
+ message(STATUS "Found GNU Make for mingw32: ${MAKE_PRG}")
+ endif()
+endif()
+
+# DEPS_C_COMPILER
+set(DEPS_C_COMPILER "${CMAKE_C_COMPILER}")
+if(CMAKE_OSX_SYSROOT)
+ set(DEPS_C_COMPILER "${DEPS_C_COMPILER} -isysroot${CMAKE_OSX_SYSROOT}")
+endif()
+if(CMAKE_OSX_ARCHITECTURES)
+ foreach(ARCH IN LISTS CMAKE_OSX_ARCHITECTURES)
+ set(DEPS_C_COMPILER "${DEPS_C_COMPILER} -arch ${ARCH}")
+ endforeach()
+endif()