From af1a266670d040d2f4083ff309d732d648afba2a Mon Sep 17 00:00:00 2001 From: Angelos Mouzakitis Date: Tue, 10 Oct 2023 14:33:42 +0000 Subject: Add submodule dependency files Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec --- meson/test cases/cmake/4 code gen/main.cpp | 8 ++++++++ meson/test cases/cmake/4 code gen/meson.build | 24 ++++++++++++++++++++++ .../subprojects/cmCodeGen/CMakeLists.txt | 6 ++++++ .../4 code gen/subprojects/cmCodeGen/main.cpp | 21 +++++++++++++++++++ meson/test cases/cmake/4 code gen/test.hpp | 5 +++++ 5 files changed, 64 insertions(+) create mode 100644 meson/test cases/cmake/4 code gen/main.cpp create mode 100644 meson/test cases/cmake/4 code gen/meson.build create mode 100644 meson/test cases/cmake/4 code gen/subprojects/cmCodeGen/CMakeLists.txt create mode 100644 meson/test cases/cmake/4 code gen/subprojects/cmCodeGen/main.cpp create mode 100644 meson/test cases/cmake/4 code gen/test.hpp (limited to 'meson/test cases/cmake/4 code gen') diff --git a/meson/test cases/cmake/4 code gen/main.cpp b/meson/test cases/cmake/4 code gen/main.cpp new file mode 100644 index 000000000..a41204b7d --- /dev/null +++ b/meson/test cases/cmake/4 code gen/main.cpp @@ -0,0 +1,8 @@ +#include +#include "test.hpp" + +using namespace std; + +int main(void) { + cout << getStr() << endl; +} diff --git a/meson/test cases/cmake/4 code gen/meson.build b/meson/test cases/cmake/4 code gen/meson.build new file mode 100644 index 000000000..80c801fa0 --- /dev/null +++ b/meson/test cases/cmake/4 code gen/meson.build @@ -0,0 +1,24 @@ +project('cmake_code_gen', ['c', 'cpp']) + +if meson.is_cross_build() + error('MESON_SKIP_TEST this test does not cross compile correctly.') +endif + +cm = import('cmake') + +# Subproject with the "code generator" +sub_pro = cm.subproject('cmCodeGen') +sub_exe = sub_pro.target('genA') + +# Generate the source +generated = custom_target( + 'cmake-generated', + input: [], + output: ['test.cpp'], + command: [sub_exe, '@OUTPUT@'] +) + +# Build the exe +exe1 = executable('main1', ['main.cpp', generated]) + +test('test1', exe1) diff --git a/meson/test cases/cmake/4 code gen/subprojects/cmCodeGen/CMakeLists.txt b/meson/test cases/cmake/4 code gen/subprojects/cmCodeGen/CMakeLists.txt new file mode 100644 index 000000000..ff50e54d5 --- /dev/null +++ b/meson/test cases/cmake/4 code gen/subprojects/cmCodeGen/CMakeLists.txt @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 3.7) + +project(CMCodeGen) +set(CMAKE_CXX_STANDARD 14) + +add_executable(genA main.cpp) diff --git a/meson/test cases/cmake/4 code gen/subprojects/cmCodeGen/main.cpp b/meson/test cases/cmake/4 code gen/subprojects/cmCodeGen/main.cpp new file mode 100644 index 000000000..5b7fed2b9 --- /dev/null +++ b/meson/test cases/cmake/4 code gen/subprojects/cmCodeGen/main.cpp @@ -0,0 +1,21 @@ +#include +#include + +using namespace std; + +int main(int argc, const char *argv[]) { + if(argc < 2) { + cerr << argv[0] << " requires an output file!" << endl; + return 1; + } + ofstream out(argv[1]); + out << R"( +#include "test.hpp" + +std::string getStr() { + return "Hello World"; +} +)"; + + return 0; +} diff --git a/meson/test cases/cmake/4 code gen/test.hpp b/meson/test cases/cmake/4 code gen/test.hpp new file mode 100644 index 000000000..8e25a0a5e --- /dev/null +++ b/meson/test cases/cmake/4 code gen/test.hpp @@ -0,0 +1,5 @@ +#pragma once + +#include + +std::string getStr(); -- cgit 1.2.3-korg