summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/CMakeLists.txt57
-rw-r--r--src/gn/CMakeLists.txt36
-rw-r--r--src/ninja/CMakeLists.txt37
3 files changed, 130 insertions, 0 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
new file mode 100644
index 000000000..e22d0230e
--- /dev/null
+++ b/src/core/CMakeLists.txt
@@ -0,0 +1,57 @@
+cmake_minimum_required(VERSION 3.18.0)
+
+project(QtWebEngineCore
+ VERSION "6.0.0"
+ DESCRIPTION "QtWebEngineCore"
+ HOMEPAGE_URL "https://doc.qt.io/qt-5/qtwebenginecore-module.html"
+ LANGUAGES CXX C)
+
+if (NOT DEFINED CMAKE_WEBENGINE_ROOT_BUILD_PATH)
+ get_filename_component(CMAKE_WEBENGINE_ROOT_BUILD_PATH ${CMAKE_CURRENT_BINARY_DIR}/../.. ABSOLUTE)
+endif()
+
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/../../cmake")
+set(buildDir "${CMAKE_CURRENT_BINARY_DIR}/debug")
+
+find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core)
+find_package(Qt6 ${PROJECT_VERSION} CONFIG OPTIONAL_COMPONENTS Gui Widgets Network OpenGL OpenGLWidgets Quick Qml QuickTest Test)
+find_package(Gn REQUIRED)
+find_package(Ninja REQUIRED)
+find_package(Python2 REQUIRED)
+
+qt_build_repo_begin()
+
+get_target_property(gnCmd Gn::gn IMPORTED_LOCATION)
+
+set(gnArg help)
+
+message("configure with gn")
+execute_process(
+ COMMAND ${gnCmd} ${gnArg}
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+ COMMAND_ECHO STDOUT
+ RESULT_VARIABLE gnResult
+ OUTPUT_VARIABLE gnOutput
+ ERROR_VARIABLE gnError
+ )
+
+if(NOT gnResult EQUAL 0)
+ message(FATAL_ERROR "Calling gn - FAILED ! \n${gnOutput}\n${gnError}")
+endif()
+
+add_custom_command(
+ OUTPUT QtWebEngineCore.stamp
+ WORKING_DIRECTORY ${buildDir}
+ COMMAND Ninja::ninja
+ $ENV{NINJAFLAGS}
+ -C ${buildDir}
+ ${CMAKE_PROJECT_NAME}
+ USES_TERMINAL
+ VERBATIM
+)
+add_custom_target(ninja ALL DEPENDS QtWebEngineCore.stamp)
+
+message("CMD: ${gn_cmd}\nARGS: ${gnArg}\nOUTPUT: ${gnOutput}")
+
+qt_build_repo_end()
+
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)
diff --git a/src/ninja/CMakeLists.txt b/src/ninja/CMakeLists.txt
new file mode 100644
index 000000000..1ac89df5a
--- /dev/null
+++ b/src/ninja/CMakeLists.txt
@@ -0,0 +1,37 @@
+
+cmake_minimum_required(VERSION 3.18.0)
+
+project(Ninja
+ DESCRIPTION "Ninja Build Tool"
+ HOMEPAGE_URL "https://ninja-build.org/"
+ LANGUAGES CXX C
+)
+
+set(NINJA_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/ninja)
+set(NINJA_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
+
+find_package(Python2 REQUIRED)
+
+if(WIN32)
+ set(NINJA_EXECUTABLE ninja.exe)
+else()
+ set(NINJA_EXECUTABLE ninja)
+endif()
+
+file(MAKE_DIRECTORY ${NINJA_BINARY_DIR})
+
+add_custom_command(
+ OUTPUT ${NINJA_EXECUTABLE}
+ WORKING_DIRECTORY ${NINJA_BINARY_DIR}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${NINJA_BINARY_DIR}/$<CONFIG>
+ COMMAND ${CMAKE_COMMAND} -E chdir ${NINJA_BINARY_DIR}/$<CONFIG>
+ ${Python2_EXECUTABLE} ${NINJA_SOURCE_DIR}/configure.py --bootstrap
+ USES_TERMINAL
+ VERBATIM
+)
+add_custom_target(Ninja ALL DEPENDS ${NINJA_EXECUTABLE})
+install(FILES ${NINJA_BINARY_DIR}/$<CONFIG>/${NINJA_EXECUTABLE}
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
+ DESTINATION bin
+)
+