diff options
author | Dominik Holland <dominik.holland@qt.io> | 2021-02-17 17:34:35 +0100 |
---|---|---|
committer | Dominik Holland <dominik.holland@qt.io> | 2021-05-10 17:28:11 +0200 |
commit | 8e3d637e7776638149119bd62f459178cbca2955 (patch) | |
tree | 077f7a597039a05555da2c2fe33c1535227dd35e /examples/ivicore/qface-tutorial | |
parent | eac2590d4266e234f0f2ec4d261d940b14dd79bf (diff) | |
download | qtivi-8e3d637e7776638149119bd62f459178cbca2955.tar.gz |
cmake integration of the ivigenerator
Rerun pro2cmake.py for all examples and tests.
Ivigenerator based tests and examples are compiling
fine, but the cmake files need to be reworked to be
also able to run them.
Task-number: AUTOSUITE-1633
Change-Id: Icb95ecfa62ecb319d042dc30ea9f643b69a4aacf
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
Diffstat (limited to 'examples/ivicore/qface-tutorial')
16 files changed, 326 insertions, 10 deletions
diff --git a/examples/ivicore/qface-tutorial/chapter1-basics/frontend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter1-basics/frontend/CMakeLists.txt index fde5846..8457644 100644 --- a/examples/ivicore/qface-tutorial/chapter1-basics/frontend/CMakeLists.txt +++ b/examples/ivicore/qface-tutorial/chapter1-basics/frontend/CMakeLists.txt @@ -21,6 +21,12 @@ find_package(Qt6 COMPONENTS IviCore) find_package(Qt6 COMPONENTS Qml) find_package(Qt6 COMPONENTS Quick) +qt_add_executable(QtIviInstrumentCluster) + +# IVI Generator: +qt6_ivigenerator(QtIviInstrumentCluster + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT frontend ) set_target_properties(QtIviInstrumentCluster PROPERTIES WIN32_EXECUTABLE TRUE diff --git a/examples/ivicore/qface-tutorial/chapter2-enums-structs/frontend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter2-enums-structs/frontend/CMakeLists.txt index 8ca17d5..e9d0815 100644 --- a/examples/ivicore/qface-tutorial/chapter2-enums-structs/frontend/CMakeLists.txt +++ b/examples/ivicore/qface-tutorial/chapter2-enums-structs/frontend/CMakeLists.txt @@ -21,6 +21,12 @@ find_package(Qt6 COMPONENTS IviCore) find_package(Qt6 COMPONENTS Qml) find_package(Qt6 COMPONENTS Quick) +qt_add_executable(QtIviInstrumentCluster) + +# IVI Generator: +qt6_ivigenerator(QtIviInstrumentCluster + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT frontend ) set_target_properties(QtIviInstrumentCluster PROPERTIES WIN32_EXECUTABLE TRUE diff --git a/examples/ivicore/qface-tutorial/chapter3-simulation-backend/backend_simulator/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/backend_simulator/CMakeLists.txt index 9927170..ce270e6 100644 --- a/examples/ivicore/qface-tutorial/chapter3-simulation-backend/backend_simulator/CMakeLists.txt +++ b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/backend_simulator/CMakeLists.txt @@ -19,6 +19,12 @@ find_package(Qt6 COMPONENTS Core) find_package(Qt6 COMPONENTS Gui) find_package(Qt6 COMPONENTS IviCore) +qt_add_plugin(instrumentcluster_simulation) + +# IVI Generator: +qt6_ivigenerator(instrumentcluster_simulation + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT backend_simulator ) set_target_properties(instrumentcluster_simulation PROPERTIES WIN32_EXECUTABLE TRUE diff --git a/examples/ivicore/qface-tutorial/chapter3-simulation-backend/frontend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/frontend/CMakeLists.txt index dc2a4c6..773b357 100644 --- a/examples/ivicore/qface-tutorial/chapter3-simulation-backend/frontend/CMakeLists.txt +++ b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/frontend/CMakeLists.txt @@ -21,6 +21,12 @@ find_package(Qt6 COMPONENTS IviCore) find_package(Qt6 COMPONENTS Qml) find_package(Qt6 COMPONENTS Quick) +qt_add_executable(QtIviInstrumentCluster) + +# IVI Generator: +qt6_ivigenerator(QtIviInstrumentCluster + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT frontend ) set_target_properties(QtIviInstrumentCluster PROPERTIES WIN32_EXECUTABLE TRUE diff --git a/examples/ivicore/qface-tutorial/chapter3-simulation-backend/imports/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/imports/CMakeLists.txt index 931e18d..3c35fa0 100644 --- a/examples/ivicore/qface-tutorial/chapter3-simulation-backend/imports/CMakeLists.txt +++ b/examples/ivicore/qface-tutorial/chapter3-simulation-backend/imports/CMakeLists.txt @@ -1,7 +1,7 @@ # Generated from imports.pro. cmake_minimum_required(VERSION 3.14) -project(imports LANGUAGES CXX) +project(instrument_cluster_imports LANGUAGES CXX) # special case set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -19,23 +19,28 @@ find_package(Qt6 COMPONENTS Core) find_package(Qt6 COMPONENTS Gui) find_package(Qt6 COMPONENTS IviCore) + +# IVI Generator: +qt6_ivigenerator(instrument_cluster_imports # special case + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT qmlplugin ) -set_target_properties(imports PROPERTIES +set_target_properties(instrument_cluster_imports PROPERTIES # special case WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE ) -target_include_directories(imports PUBLIC +target_include_directories(instrument_cluster_imports PUBLIC # special case ${CMAKE_CURRENT_BINARY_DIR}/../frontend ) -target_link_libraries(imports PUBLIC +target_link_libraries(instrument_cluster_imports PUBLIC # special case # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../ Qt::Core Qt::Gui Qt::IviCore ) -install(TARGETS imports +install(TARGETS instrument_cluster_imports # special case RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/backend_simulator/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/backend_simulator/CMakeLists.txt new file mode 100644 index 0000000..d05a645 --- /dev/null +++ b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/backend_simulator/CMakeLists.txt @@ -0,0 +1,61 @@ +# Generated from backend_simulator.pro. + +cmake_minimum_required(VERSION 3.14) +project(instrumentcluster_simulation LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter4-simulation-behavior") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS IviCore) + +qt_add_plugin(instrumentcluster_simulation) + +# IVI Generator: +qt6_ivigenerator(instrumentcluster_simulation + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT backend_simulator +) +set_target_properties(instrumentcluster_simulation PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_include_directories(instrumentcluster_simulation PUBLIC + ${CMAKE_CURRENT_BINARY_DIR}/../frontend +) + +target_link_libraries(instrumentcluster_simulation PUBLIC + # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../ + Qt::Core + Qt::Gui + Qt::IviCore +) + + +# Resources: +set(simulation_resource_files + "simulation.qml" +) + +qt6_add_resources(instrumentcluster_simulation "simulation" + PREFIX + "/" + FILES + ${simulation_resource_files} +) + +install(TARGETS instrumentcluster_simulation + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/frontend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/frontend/CMakeLists.txt index 6ee4d49..92b465b 100644 --- a/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/frontend/CMakeLists.txt +++ b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/frontend/CMakeLists.txt @@ -21,6 +21,12 @@ find_package(Qt6 COMPONENTS IviCore) find_package(Qt6 COMPONENTS Qml) find_package(Qt6 COMPONENTS Quick) +qt_add_executable(QtIviInstrumentCluster) + +# IVI Generator: +qt6_ivigenerator(QtIviInstrumentCluster + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT frontend ) set_target_properties(QtIviInstrumentCluster PROPERTIES WIN32_EXECUTABLE TRUE diff --git a/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/imports/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/imports/CMakeLists.txt index 780e019..b55a4e8 100644 --- a/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/imports/CMakeLists.txt +++ b/examples/ivicore/qface-tutorial/chapter4-simulation-behavior/imports/CMakeLists.txt @@ -1,7 +1,7 @@ # Generated from imports.pro. cmake_minimum_required(VERSION 3.14) -project(imports LANGUAGES CXX) +project(instrument_cluster_imports LANGUAGES CXX) # special case set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -19,23 +19,28 @@ find_package(Qt6 COMPONENTS Core) find_package(Qt6 COMPONENTS Gui) find_package(Qt6 COMPONENTS IviCore) + +# IVI Generator: +qt6_ivigenerator(instrument_cluster_imports # special case + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT qmlplugin ) -set_target_properties(imports PROPERTIES +set_target_properties(instrument_cluster_imports PROPERTIES # special case WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE ) -target_include_directories(imports PUBLIC +target_include_directories(instrument_cluster_imports PUBLIC # special case ${CMAKE_CURRENT_BINARY_DIR}/../frontend ) -target_link_libraries(imports PUBLIC +target_link_libraries(instrument_cluster_imports PUBLIC # special case # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../ Qt::Core Qt::Gui Qt::IviCore ) -install(TARGETS imports +install(TARGETS instrument_cluster_imports # special case RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/ivicore/qface-tutorial/chapter5-ipc/backend_qtro/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter5-ipc/backend_qtro/CMakeLists.txt index 80de93e..6171192 100644 --- a/examples/ivicore/qface-tutorial/chapter5-ipc/backend_qtro/CMakeLists.txt +++ b/examples/ivicore/qface-tutorial/chapter5-ipc/backend_qtro/CMakeLists.txt @@ -19,6 +19,12 @@ find_package(Qt6 COMPONENTS Core) find_package(Qt6 COMPONENTS Gui) find_package(Qt6 COMPONENTS IviCore) +qt_add_plugin(instrumentcluster_qtro) + +# IVI Generator: +qt6_ivigenerator(instrumentcluster_qtro + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT backend_qtro ) set_target_properties(instrumentcluster_qtro PROPERTIES WIN32_EXECUTABLE TRUE diff --git a/examples/ivicore/qface-tutorial/chapter5-ipc/backend_simulator/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter5-ipc/backend_simulator/CMakeLists.txt new file mode 100644 index 0000000..6db7b24 --- /dev/null +++ b/examples/ivicore/qface-tutorial/chapter5-ipc/backend_simulator/CMakeLists.txt @@ -0,0 +1,61 @@ +# Generated from backend_simulator.pro. + +cmake_minimum_required(VERSION 3.14) +project(instrumentcluster_simulation LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter5-ipc") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS IviCore) + +qt_add_plugin(instrumentcluster_simulation) + +# IVI Generator: +qt6_ivigenerator(instrumentcluster_simulation + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT backend_simulator +) +set_target_properties(instrumentcluster_simulation PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_include_directories(instrumentcluster_simulation PUBLIC + ${CMAKE_CURRENT_BINARY_DIR}/../frontend +) + +target_link_libraries(instrumentcluster_simulation PUBLIC + # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../ + Qt::Core + Qt::Gui + Qt::IviCore +) + + +# Resources: +set(simulation_resource_files + "simulation.qml" +) + +qt6_add_resources(instrumentcluster_simulation "simulation" + PREFIX + "/" + FILES + ${simulation_resource_files} +) + +install(TARGETS instrumentcluster_simulation + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/ivicore/qface-tutorial/chapter5-ipc/frontend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter5-ipc/frontend/CMakeLists.txt index 422563e..0927186 100644 --- a/examples/ivicore/qface-tutorial/chapter5-ipc/frontend/CMakeLists.txt +++ b/examples/ivicore/qface-tutorial/chapter5-ipc/frontend/CMakeLists.txt @@ -21,6 +21,12 @@ find_package(Qt6 COMPONENTS IviCore) find_package(Qt6 COMPONENTS Qml) find_package(Qt6 COMPONENTS Quick) +qt_add_executable(QtIviInstrumentCluster) + +# IVI Generator: +qt6_ivigenerator(QtIviInstrumentCluster + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT frontend ) set_target_properties(QtIviInstrumentCluster PROPERTIES WIN32_EXECUTABLE TRUE diff --git a/examples/ivicore/qface-tutorial/chapter5-ipc/imports/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter5-ipc/imports/CMakeLists.txt index 03b4cc9..768b549 100644 --- a/examples/ivicore/qface-tutorial/chapter5-ipc/imports/CMakeLists.txt +++ b/examples/ivicore/qface-tutorial/chapter5-ipc/imports/CMakeLists.txt @@ -19,6 +19,11 @@ find_package(Qt6 COMPONENTS Core) find_package(Qt6 COMPONENTS Gui) find_package(Qt6 COMPONENTS IviCore) + +# IVI Generator: +qt6_ivigenerator(imports + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT qmlplugin ) set_target_properties(imports PROPERTIES WIN32_EXECUTABLE TRUE diff --git a/examples/ivicore/qface-tutorial/chapter5-ipc/simulation_server/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter5-ipc/simulation_server/CMakeLists.txt new file mode 100644 index 0000000..15105dc --- /dev/null +++ b/examples/ivicore/qface-tutorial/chapter5-ipc/simulation_server/CMakeLists.txt @@ -0,0 +1,65 @@ +# Generated from simulation_server.pro. + +cmake_minimum_required(VERSION 3.14) +project(chapter5-ipc-server LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter5-ipc/simulation_server") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS IviCore) + +qt_add_executable(chapter5-ipc-server) + +# IVI Generator: +qt6_ivigenerator(chapter5-ipc-server + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT server_qtro_simulator +) +set_target_properties(chapter5-ipc-server PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE FALSE +) +target_include_directories(chapter5-ipc-server PUBLIC + ${CMAKE_CURRENT_BINARY_DIR}/../frontend +) + +target_link_libraries(chapter5-ipc-server PUBLIC + # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../ + # Remove: gui + Qt::Core + Qt::IviCore +) + + +# Resources: +set_source_files_properties("../backend_simulator/simulation.qml" + PROPERTIES QT_RESOURCE_ALIAS "simulation.qml" +) +set(simulation_resource_files + "simulation.qml" +) + +qt6_add_resources(chapter5-ipc-server "simulation" + PREFIX + "/" + BASE + "../backend_simulator" + FILES + ${simulation_resource_files} +) + +install(TARGETS chapter5-ipc-server + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/ivicore/qface-tutorial/chapter6-own-backend/backend_simulator/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter6-own-backend/backend_simulator/CMakeLists.txt new file mode 100644 index 0000000..e3227a0 --- /dev/null +++ b/examples/ivicore/qface-tutorial/chapter6-own-backend/backend_simulator/CMakeLists.txt @@ -0,0 +1,61 @@ +# Generated from backend_simulator.pro. + +cmake_minimum_required(VERSION 3.14) +project(instrumentcluster_simulation LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "examples") +endif() + +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/ivicore/qface-tutorial/chapter6-own-backend") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS IviCore) + +qt_add_plugin(instrumentcluster_simulation) + +# IVI Generator: +qt6_ivigenerator(instrumentcluster_simulation + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT backend_simulator +) +set_target_properties(instrumentcluster_simulation PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_include_directories(instrumentcluster_simulation PUBLIC + ${CMAKE_CURRENT_BINARY_DIR}/../frontend +) + +target_link_libraries(instrumentcluster_simulation PUBLIC + # Remove: L${CMAKE_CURRENT_BINARY_DIR}/../ + Qt::Core + Qt::Gui + Qt::IviCore +) + + +# Resources: +set(simulation_resource_files + "simulation.qml" +) + +qt6_add_resources(instrumentcluster_simulation "simulation" + PREFIX + "/" + FILES + ${simulation_resource_files} +) + +install(TARGETS instrumentcluster_simulation + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/ivicore/qface-tutorial/chapter6-own-backend/frontend/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter6-own-backend/frontend/CMakeLists.txt index 6ca6d2a..2b0fc93 100644 --- a/examples/ivicore/qface-tutorial/chapter6-own-backend/frontend/CMakeLists.txt +++ b/examples/ivicore/qface-tutorial/chapter6-own-backend/frontend/CMakeLists.txt @@ -21,6 +21,12 @@ find_package(Qt6 COMPONENTS IviCore) find_package(Qt6 COMPONENTS Qml) find_package(Qt6 COMPONENTS Quick) +qt_add_executable(QtIviInstrumentCluster) + +# IVI Generator: +qt6_ivigenerator(QtIviInstrumentCluster + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT frontend ) set_target_properties(QtIviInstrumentCluster PROPERTIES WIN32_EXECUTABLE TRUE diff --git a/examples/ivicore/qface-tutorial/chapter6-own-backend/imports/CMakeLists.txt b/examples/ivicore/qface-tutorial/chapter6-own-backend/imports/CMakeLists.txt index b19a870..9723bd9 100644 --- a/examples/ivicore/qface-tutorial/chapter6-own-backend/imports/CMakeLists.txt +++ b/examples/ivicore/qface-tutorial/chapter6-own-backend/imports/CMakeLists.txt @@ -19,6 +19,11 @@ find_package(Qt6 COMPONENTS Core) find_package(Qt6 COMPONENTS Gui) find_package(Qt6 COMPONENTS IviCore) + +# IVI Generator: +qt6_ivigenerator(imports + QFACE_SOURCES ../instrument-cluster.qface + QFACE_FORMAT qmlplugin ) set_target_properties(imports PROPERTIES WIN32_EXECUTABLE TRUE |