pablodepas87
pablodepas87

Reputation: 307

QT FILE *.TS doesn't created after build with cmake. How to create translations file?

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

Answers (0)

Related Questions