4
0
mirror of https://github.com/QuasarApp/CMakeProject.git synced 2025-04-25 21:24:33 +00:00

refrseh template
Some checks failed
buildbot/DocsGenerator Build finished.
buildbot/AndroidBuilder_v8Qt6 Build finished.
buildbot/LinuxCMakeBuilderQt6 Build finished.
buildbot/IOSCMakeBuilder Build finished.
buildbot/WindowsCMakeBuilder Build finished.

This commit is contained in:
Andrei Yankovich 2023-08-29 22:34:08 +02:00
parent 648a8dc6ad
commit 65236391b3
41 changed files with 113 additions and 75 deletions

View File

@ -5,7 +5,7 @@
# of this license document, but changing it is not allowed.
#
cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.19)
project(RENAME_ME LANGUAGES CXX)
if(TARGET ${PROJECT_NAME})
message("The ${PROJECT_NAME} arledy included in main Project")
@ -17,17 +17,15 @@ set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (ANDROID OR IOS)
set(BUILD_SHARED_LIBS ON)
endif()
if (NOT QT_VERSION_MAJOR)
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Test QUIET)
endif()
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Test QUIET)
find_package(Qt6 COMPONENTS Core REQUIRED)
find_package(Qt6 COMPONENTS Test QUIET)
include(submodules/CMake/QuasarApp.cmake)
@ -38,22 +36,18 @@ set(RENAME_ME_PACKAGE_ID "quasarapp.core.RENAME_ME")
option(RENAME_ME_TESTS "This option disables or enables tests of the ${PROJECT_NAME} project" ON)
option(RENAME_ME_EXAMPLE "This option disables or enables example app of the ${PROJECT_NAME} project" ON)
if (ANDROID OR IOS OR NOT QT_VERSION_MAJOR OR QA_WASM32)
if (ANDROID OR IOS OR QA_WASM32)
set(RENAME_ME_TESTS OFF CACHE BOOL "This option force disbled for ANDROID IOS QA_WASM32 and Not Qt projects" FORCE)
endif()
if (NOT QT_VERSION_MAJOR)
set(RENAME_ME_EXAMPLE OFF CACHE BOOL "This option force disbled for Not Qt projects" FORCE)
endif()
make_directory(Distro)
initAll()
add_subdirectory(src/Library)
add_subdirectory(src/RENAME_ME)
if (DEFINED RENAME_ME_EXAMPLE)
add_subdirectory(src/Example)
add_subdirectory(src/example)
endif()
if (RENAME_ME_TESTS)
@ -64,4 +58,4 @@ endif()
configure_file_in(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/doxygen.conf)
addDoc(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/doxygen.conf)
addDeployFromCustomFile("RENAME_ME" "${CMAKE_CURRENT_SOURCE_DIR}/Deploy/RENAME_ME.json")
addDeployFromCustomFile("RENAME_ME" "${CMAKE_CURRENT_SOURCE_DIR}/deploy/RENAME_ME.json")

49
init.sh
View File

@ -7,21 +7,51 @@ then
echo "You call this script wtth wrong arguments."
echo "Example for start script:"
echo "./init.sh MyCmakeProject"
echo "Usage: $0 <replacement_string>"
exit 1
fi
REPLACESTRING="s+RENAME_ME+$1+g"
echo $REPLACESTRING
replacement="$1"
find . -not -path '*/\.*' -type f -exec sed -i $REPLACESTRING {} +
find . -not -path '*/\.*' -type f -exec sed -i $REPLACESTRING {} +
rename_files_and_folders() {
local dir="$1"
local old_str="$2"
local new_str="$3"
find src -type d -name '*RENAME_ME*' -exec sh -c 'x="{}"; NEWSTR=$(echo "$x" | sed "s/RENAME_ME/'$1'/"); mv "$x" "$NEWSTR"' \;
for item in "$dir"/*; do
if [ -d "$item" ]; then
new_name=$(echo "$item" | sed "s/$old_str/$new_str/g")
if [ "$item" != "$new_name" ]; then
mv "$item" "$new_name"
echo "Renamed directory: $item -> $new_name"
fi
rename_files_and_folders "$new_name" "$old_str" "$new_str"
elif [ -f "$item" ]; then
sed -i "s/$old_str/$new_str/g" "$item"
find src -type f -name '*RENAME_ME*' -exec sh -c 'x="{}"; NEWSTR=$(echo "$x" | sed "s/RENAME_ME/'$1'/"); mv "$x" "$NEWSTR"' \;
find Deploy -type f -name '*RENAME_ME*' -exec sh -c 'x="{}"; NEWSTR=$(echo "$x" | sed "s/RENAME_ME/'$1'/"); mv "$x" "$NEWSTR"' \;
new_name=$(echo "$item" | sed "s/$old_str/$new_str/g")
if [ "$item" != "$new_name" ]; then
mv "$item" "$new_name"
echo "Renamed file: $item -> $new_name"
fi
fi
done
}
uppercase_string=$(echo "$replacement" | tr '[:lower:]' '[:upper:]')
rename_files_and_folders "." "RENAME_ME_EXPORT" "${uppercase_string}_EXPORT"
rename_files_and_folders "." "RENAME_ME_VERSION" "${uppercase_string}_VERSION"
rename_files_and_folders "." "RENAME_ME_LIBRARY" "${uppercase_string}_LIBRARY"
rename_files_and_folders "." "RENAME_ME_EXAMPLE" "${uppercase_string}_EXAMPLE"
rename_files_and_folders "." "RENAME_ME_TESTS" "${uppercase_string}_TESTS"
rename_files_and_folders "." "RENAME_ME_PACKAGE_ID" "${uppercase_string}_PACKAGE_ID"
rename_files_and_folders "." "RENAME_ME" "$replacement"
echo "Replacement complete."
set -e
git config -f .gitmodules --get-regexp '^submodule\..*\.path$' |
while read path_key path
@ -30,6 +60,3 @@ git config -f .gitmodules --get-regexp '^submodule\..*\.path$' |
url=$(git config -f .gitmodules --get "$url_key")
git submodule add $url $path
done

View File

@ -5,11 +5,9 @@
# of this license document, but changing it is not allowed.
#
cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.19)
get_filename_component(CURRENT_PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR} NAME)
set(CURRENT_PROJECT "${PROJECT_NAME}${CURRENT_PROJECT_DIR}")
set(CURRENT_PROJECT "${PROJECT_NAME}")
add_definitions(-DRENAME_ME_LIBRARY)
@ -18,22 +16,16 @@ file(GLOB_RECURSE SOURCE_CPP
"src/*.h"
)
if (${QT_VERSION_MAJOR})
file(GLOB_RECURSE SOURCE_QRC
"*.qrc"
)
endif()
file(GLOB_RECURSE SOURCE_QRC
"*.qrc"
)
set(PUBLIC_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/public")
set(PRIVATE_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/private")
add_library(${CURRENT_PROJECT} ${SOURCE_CPP} ${SOURCE_QRC})
if (${QT_VERSION_MAJOR})
target_link_libraries(${CURRENT_PROJECT} PUBLIC Qt${QT_VERSION_MAJOR}::Core )
endif()
target_link_libraries(${CURRENT_PROJECT} PUBLIC Qt${QT_VERSION_MAJOR}::Core )
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})

View File

@ -0,0 +1,22 @@
//#
//# Copyright (C) 2018-2023 QuasarApp.
//# Distributed under the GPLv3 software license, see the accompanying
//# Everyone is permitted to copy and distribute verbatim copies
//# of this license document, but changing it is not allowed.
//#
#ifndef RENAME_ME_GLOBAL_H
#define RENAME_ME_GLOBAL_H
#include <QtCore/qglobal.h>
#define RENAME_ME_VERSION "0.87.648a8dc"
#if defined(RENAME_ME_LIBRARY)
# define RENAME_ME_EXPORT Q_DECL_EXPORT
#else
# define RENAME_ME_EXPORT Q_DECL_IMPORT
#endif
#endif //RENAME_ME_GLOBAL_H

View File

@ -5,45 +5,32 @@
# of this license document, but changing it is not allowed.
#
cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.19)
get_filename_component(CURRENT_PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR} NAME)
set(CURRENT_PROJECT "${PROJECT_NAME}${CURRENT_PROJECT_DIR}")
set(CURRENT_PROJECT "${PROJECT_NAME}_${CURRENT_PROJECT_DIR}")
option(SIGN_APP "This option enable od disabled sign apk and aab files" ON)
file(GLOB_RECURSE SOURCE_CPP
"*.cpp" "*.h"
)
if (${QT_VERSION_MAJOR})
file(GLOB_RECURSE SOURCE_QRC
"*.qrc"
)
endif()
file(GLOB_RECURSE SOURCE_QRC
"*.qrc"
)
set(ALL_SOURCES ${SOURCE_CPP} ${SOURCE_QRC})
set(PUBLIC_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(PRIVATE_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Private")
set(PRIVATE_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/private")
updateGitVars()
if (${QT_VERSION_MAJOR} EQUAL 6)
qt_add_executable(${CURRENT_PROJECT} ${ALL_SOURCES})
qt_add_executable(${CURRENT_PROJECT} MANUAL_FINALIZATION ${ALL_SOURCES})
else()
if (ANDROID)
add_library(${CURRENT_PROJECT} ${ALL_SOURCES})
else ()
add_executable(${CURRENT_PROJECT} ${ALL_SOURCES} )
endif()
endif()
target_link_libraries(${CURRENT_PROJECT} PUBLIC ${PROJECT_NAME}Library)
target_link_libraries(${CURRENT_PROJECT} PUBLIC ${PROJECT_NAME})
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})
@ -63,9 +50,6 @@ if (ANDROID)
# libName
)
# find_package(Qt${QT_VERSION_MAJOR} COMPONENTS AndroidExtras REQUIRED)
# target_link_libraries(${CURRENT_PROJECT} PRIVATE Qt${QT_VERSION_MAJOR}::AndroidExtras)
if (SIGN_APP)
message("SIGN_APP")
addDeploySignedAPK(${CURRENT_PROJECT}
@ -117,20 +101,13 @@ else()
message(GIT_COMMIT_COUNT = ${GIT_COMMIT_COUNT})
set(DeployFile "${CMAKE_CURRENT_SOURCE_DIR}/Deploy/RENAME_ME.json")
set(DeployFile "${CMAKE_CURRENT_SOURCE_DIR}/deploy/RENAME_ME.json")
configure_file("${DeployFile}.in" ${DeployFile} @ONLY)
addDeployFromCustomFile("RENAME_ME" ${DeployFile})
endif()
if(QT_VERSION_MAJOR EQUAL 6)
# Add This line if your project use the Quick module
# qt_import_qml_plugins(${CURRENT_PROJECT})
qt_finalize_executable(${CURRENT_PROJECT})
endif()
set(LANGS ${CMAKE_CURRENT_SOURCE_DIR}/languages/en.ts
${CMAKE_CURRENT_SOURCE_DIR}/languages/ru.ts
${CMAKE_CURRENT_SOURCE_DIR}/languages/uk.ts

View File

@ -0,0 +1,27 @@
{
"bin": [
"src/build/Debug/RENAME_MEEaxample",
"src/build/Debug/RENAME_MEEaxample.exe"
],
"clear": true,
"binPrefix": "/media/D/builds/build-CMakeProject-Desktop_Qt_6_5_2_GCC_64bit-Debug",
"libDir": [
"/media/D/builds/CMakeProject",
"/home/andrei/Qt/6.5.2/gcc_64",
"/media/D/builds/build-CMakeProject-Desktop_Qt_6_5_2_GCC_64bit-Debug"
],
"recursiveDepth": "10",
"deploySystem": false,
"qmlDir": "../",
"deb": true,
"qif": true,
"zip": true,
"ignoreEnv": [
"/media/D/builds/CMakeProject/Distro"
],
"extraLib": "crypto",
"targetDir": "/media/D/builds/CMakeProject/Distro",
"deployVersion": "0.87.648a8dc",
}

View File

@ -5,11 +5,11 @@
# of this license document, but changing it is not allowed.
#
cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.19)
get_filename_component(CURRENT_PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR} NAME)
set(CURRENT_PROJECT "${PROJECT_NAME}${CURRENT_PROJECT_DIR}")
set(CURRENT_PROJECT "${PROJECT_NAME}_${CURRENT_PROJECT_DIR}")
file(GLOB_RECURSE SOURCE_CPP
"*.cpp" "*.h" "*.qrc"
@ -20,10 +20,9 @@ set(PUBLIC_INCUDE_DIR ${PUBLIC_INCUDE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/units")
add_executable(${CURRENT_PROJECT} ${SOURCE_CPP})
target_link_libraries(${CURRENT_PROJECT} PRIVATE Qt${QT_VERSION_MAJOR}::Test ${PROJECT_NAME}Library)
target_link_libraries(${CURRENT_PROJECT} PRIVATE Qt${QT_VERSION_MAJOR}::Test ${PROJECT_NAME})
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
initTests()
addTests(${PROJECT_NAME} ${CURRENT_PROJECT})