Reputation: 307
I have to create QT translations file and this is the main cmakelist file of project:
cmake_minimum_required(VERSION 3.13)
project(rainbow VERSION 0.0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(BUILD_SHARED_LIBS OFF)
set(STATIC_LIBS ON)
find_package(Qt5 COMPONENTS REQUIRED
Core
Gui
Widgets
Network
Qml
Quick
LinguistTools
)
if (COROB_CMAKE_PACKAGES)
find_package(EvoCommWrapper REQUIRED)
else()
set (Corob_DIR "${CMAKE_CURRENT_LIST_DIR}/../../COMMON" CACHE PATH "")
find_package (Corob REQUIRED)
set (CPSDATAMODEL_FORCE_STATS_V1 ON CACHE BOOL "" FORCE)
add_subdirectory (${COROB_SOURCE_DIR}/3RDPARTY/xmlrpc2 xmlrpc2)
add_subdirectory (${COROB_SOURCE_DIR}/3RDPARTY/spdlog spdlog)
add_subdirectory (${COROB_SOURCE_DIR}/DSP/NelaHwError NelaHwError)
add_subdirectory (${COROB_SOURCE_DIR}/EVO/CpsFramework CpsFramework)
add_subdirectory (${COROB_SOURCE_DIR}/EVO/CpsProtocol CpsProtocol)
add_subdirectory (${COROB_SOURCE_DIR}/EVO/EVOComm EVOComm)
add_subdirectory (${COROB_SOURCE_DIR}/3RDPARTY/ZipArchive ZipArchive)
add_subdirectory (${COROB_SOURCE_DIR}/EVO/CpsDataModel CpsDataModel)
add_subdirectory (${COROB_SOURCE_DIR}/POS/EvoCommWrapper EvoCommWrapper)
endif()
# Must pass as option to moc to use some macros
set(CUSTOM_MOC_OPTIONS
--include ${PROJECT_SOURCE_DIR}/common/include/common/QmlPropertyHelpers.h)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
add_subdirectory(common)
add_subdirectory(model)
add_subdirectory(gui)
add_subdirectory(keyboard)
# ThreadSanitizer
set(CMAKE_C_FLAGS_TSAN
"-fsanitize=thread -g -O1"
CACHE STRING "Flags used by the C compiler during ThreadSanitizer builds."
FORCE)
set(CMAKE_CXX_FLAGS_TSAN
"-fsanitize=thread -g -O1"
CACHE STRING "Flags used by the C++ compiler during ThreadSanitizer builds."
FORCE)
# AddressSanitize
set(CMAKE_C_FLAGS_ASAN
"-fsanitize=address -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1"
CACHE STRING "Flags used by the C compiler during AddressSanitizer builds."
FORCE)
set(CMAKE_CXX_FLAGS_ASAN
"-fsanitize=address -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1"
CACHE STRING "Flags used by the C++ compiler during AddressSanitizer builds."
FORCE)
# LeakSanitizer
set(CMAKE_C_FLAGS_LSAN
"-fsanitize=leak -fno-omit-frame-pointer -g -O1"
CACHE STRING "Flags used by the C compiler during LeakSanitizer builds."
FORCE)
set(CMAKE_CXX_FLAGS_LSAN
"-fsanitize=leak -fno-omit-frame-pointer -g -O1"
CACHE STRING "Flags used by the C++ compiler during LeakSanitizer builds."
FORCE)
# MemorySanitizer
set(CMAKE_C_FLAGS_MSAN
"-fsanitize=memory -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -g -O2"
CACHE STRING "Flags used by the C compiler during MemorySanitizer builds."
FORCE)
set(CMAKE_CXX_FLAGS_MSAN
"-fsanitize=memory -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -g -O2"
CACHE STRING "Flags used by the C++ compiler during MemorySanitizer builds."
FORCE)
# UndefinedBehaviour
set(CMAKE_C_FLAGS_UBSAN
"-fsanitize=undefined"
CACHE STRING "Flags used by the C compiler during UndefinedBehaviourSanitizer builds."
FORCE)
set(CMAKE_CXX_FLAGS_UBSAN
"-fsanitize=undefined"
CACHE STRING "Flags used by the C++ compiler during UndefinedBehaviourSanitizer builds."
FORCE)
set(TranslationDir langs)
file(MAKE_DIRECTORY ${TranslationDir})
set(TS_FILE ${TranslationsDir}/en_EN.ts)
set(TranslationDir langs)
file(MAKE_DIRECTORY ${TranslationDir})
set(TS_FILE ${TranslationsDir}/en_EN.ts)
qt5_create_translation (QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}${TS_FILES} )
When build the project into qt creator cmake create correctly the dir langs, but ts file not created. Where is my error? I have to create translation for gui and model subdirectories files project, its subdirectories has cmakelist.txt file.
Upvotes: 1
Views: 175