diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/CMakeLists.txt | 57 | ||||
-rw-r--r-- | src/gn/CMakeLists.txt | 36 | ||||
-rw-r--r-- | src/ninja/CMakeLists.txt | 37 |
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 +) + |