summaryrefslogtreecommitdiffstats
path: root/tools/repc/CMakeLists.txt
blob: 3577979e04efb8351769ed7ca6ecb2217d19c1de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause

#####################################################################
## repc Tool:
#####################################################################

set(REPPARSER_DIR "${PROJECT_SOURCE_DIR}/src/repparser")

qt_get_tool_target_name(target_name repc)
qt_internal_add_tool(${target_name}
    TARGET_DESCRIPTION "Qt Remote Objects Compiler"
    TOOLS_TARGET RemoteObjects
    INSTALL_DIR "${INSTALL_LIBEXECDIR}"
    SOURCES
        cppcodegenerator.cpp cppcodegenerator.h
        main.cpp
        repcodegenerator.cpp repcodegenerator.h
        utils.cpp utils.h
    DEFINES
        QT_NO_CAST_FROM_ASCII
        QT_NO_CAST_FROM_BYTEARRAY
        QT_NO_CAST_TO_ASCII
        QT_NO_URL_CAST_FROM_STRING
        RO_INSTALL_HEADERS=\"$$[QT_INSTALL_HEADERS]/QtRemoteObjects\"
    INCLUDE_DIRECTORIES
        ${REPPARSER_DIR}
    LIBRARIES
        Qt::CorePrivate
)

qt_internal_return_unless_building_tools()

set_target_properties(${target_name} PROPERTIES UNITY_BUILD OFF)

# QLALR Grammars:
qt_process_qlalr(
    ${target_name}
    "${REPPARSER_DIR}/parser.g"
    ""
)

## Scopes:
#####################################################################

qt_internal_extend_target(${target_name} CONDITION MSVC
    COMPILE_OPTIONS
        /wd4129
)