summaryrefslogtreecommitdiffstats
path: root/src/gn/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/gn/CMakeLists.txt')
-rw-r--r--src/gn/CMakeLists.txt36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/gn/CMakeLists.txt b/src/gn/CMakeLists.txt
new file mode 100644
index 000000000..9e98e152b
--- /dev/null
+++ b/src/gn/CMakeLists.txt
@@ -0,0 +1,36 @@
+
+cmake_minimum_required(VERSION 3.18.0)
+
+project(Gn
+ DESCRIPTION "Meta-build system"
+ HOMEPAGE_URL "https://gn.googlesource.com/gn/"
+ LANGUAGES CXX C
+)
+
+set(GN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/gn)
+set(GN_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/gn)
+set(GN_EXECUTABLE ${GN_BINARY_DIR}/gn)
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake")
+
+find_package(Python2 REQUIRED)
+find_package(Ninja 1.7.2 REQUIRED)
+
+file(MAKE_DIRECTORY ${GN_BINARY_DIR})
+add_custom_command(
+ OUTPUT ${GN_EXECUTABLE}
+ WORKING_DIRECTORY ${GN_BINARY_DIR}
+ COMMAND ${Python2_EXECUTABLE} ${GN_SOURCE_DIR}/build/gen.py
+ --no-last-commit-position
+ --out-path .
+ --cc ${CMAKE_C_COMPILER}
+ --cxx ${CMAKE_CXX_COMPILER}
+ --ld ${CMAKE_CXX_COMPILER}
+ COMMAND Ninja::ninja gn
+ VERBATIM
+ USES_TERMINAL
+ COMMAND_EXPAND_LISTS
+)
+add_custom_target(gn ALL DEPENDS ${GN_EXECUTABLE})
+install(FILES ${GN_EXECUTABLE}
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
+ DESTINATION bin)