mirror of
https://github.com/QuasarApp/CMakeProject.git
synced 2025-04-25 21:24:33 +00:00
refrseh template
This commit is contained in:
parent
648a8dc6ad
commit
65236391b3
@ -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
49
init.sh
@ -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
|
||||
|
||||
|
||||
|
||||
|
@ -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})
|
22
src/RENAME_ME/src/public/RENAME_ME/global.h
Normal file
22
src/RENAME_ME/src/public/RENAME_ME/global.h
Normal 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
|
||||
|
@ -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
|
27
src/example/deploy/RENAME_ME.json
Normal file
27
src/example/deploy/RENAME_ME.json
Normal 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",
|
||||
|
||||
}
|
||||
|
@ -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})
|
||||
|
Loading…
x
Reference in New Issue
Block a user