diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2019-11-28 13:15:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-28 13:15:51 +0200 |
commit | 575a2c34f811dc003caf415d5343f524c5c8e802 (patch) | |
tree | 02f9f31d088151d769a9cf6b566b74d3b14a31ce /test cases | |
parent | bb03cf0dbc7158fd0684047272869abd565e4951 (diff) | |
parent | 82df046bc17435e38907cb605e17a52609c00e36 (diff) | |
download | meson-575a2c34f811dc003caf415d5343f524c5c8e802.zip meson-575a2c34f811dc003caf415d5343f524c5c8e802.tar.gz meson-575a2c34f811dc003caf415d5343f524c5c8e802.tar.bz2 |
Merge pull request #5989 from xclaesse/cmake-part2
cmake: Add support for add_custom_target() and add_dependencies()
Diffstat (limited to 'test cases')
4 files changed, 51 insertions, 0 deletions
diff --git a/test cases/cmake/8 custom command/subprojects/cmMod/CMakeLists.txt b/test cases/cmake/8 custom command/subprojects/cmMod/CMakeLists.txt index 259151c..3c3297e 100644 --- a/test cases/cmake/8 custom command/subprojects/cmMod/CMakeLists.txt +++ b/test cases/cmake/8 custom command/subprojects/cmMod/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.5) project(cmMod) set (CMAKE_CXX_STANDARD 14) +set (CMAKE_CXX_STANDARD_REQUIRED ON) include_directories(${CMAKE_CURRENT_BINARY_DIR}) add_definitions("-DDO_NOTHING_JUST_A_FLAG=1") @@ -44,3 +45,16 @@ add_custom_command( add_library(cmModLib SHARED cmMod.cpp genTest.cpp cpyBase.cpp cpyBase.hpp) include(GenerateExportHeader) generate_export_header(cmModLib) + +set(ARGS_TEST arg1) +set(ARGS_TEST ${ARGS_TEST} arg2) + +add_executable(macro_name macro_name.cpp) +add_executable(args_test args_test.cpp) +add_custom_target(args_test_cmd + COMMAND args_test ARGS ${ARGS_TEST} +) +add_custom_target(macro_name_cmd COMMAND macro_name) + +add_dependencies(cmModLib args_test_cmd) +add_dependencies(args_test_cmd macro_name_cmd) diff --git a/test cases/cmake/8 custom command/subprojects/cmMod/args_test.cpp b/test cases/cmake/8 custom command/subprojects/cmMod/args_test.cpp new file mode 100644 index 0000000..abb8a42 --- /dev/null +++ b/test cases/cmake/8 custom command/subprojects/cmMod/args_test.cpp @@ -0,0 +1,18 @@ +#include <iostream> +#include <fstream> + +using namespace std; + +int main(int argc, const char *argv[]) { + if(argc != 3 || string(argv[1]) != "arg1" || string(argv[2]) != "arg2") { + cerr << argv[0] << " requires 2 args" << endl; + return 1; + } + + ifstream in1("macro_name.txt"); + ofstream out1("cmModLib.hpp"); + out1 << "#define " << in1.rdbuf() << " = \"plop\""; + + + return 0; +} diff --git a/test cases/cmake/8 custom command/subprojects/cmMod/cmMod.cpp b/test cases/cmake/8 custom command/subprojects/cmMod/cmMod.cpp index 0fb6aa7..b7e8200 100644 --- a/test cases/cmake/8 custom command/subprojects/cmMod/cmMod.cpp +++ b/test cases/cmake/8 custom command/subprojects/cmMod/cmMod.cpp @@ -1,6 +1,11 @@ #include "cmMod.hpp" #include "genTest.hpp" #include "cpyBase.hpp" +#include "cmModLib.hpp" + +#ifndef FOO +#error FOO not declared +#endif using namespace std; diff --git a/test cases/cmake/8 custom command/subprojects/cmMod/macro_name.cpp b/test cases/cmake/8 custom command/subprojects/cmMod/macro_name.cpp new file mode 100644 index 0000000..790557b --- /dev/null +++ b/test cases/cmake/8 custom command/subprojects/cmMod/macro_name.cpp @@ -0,0 +1,14 @@ +#include <iostream> +#include <fstream> +#include <chrono> +#include <thread> + +using namespace std; + +int main() { + this_thread::sleep_for(chrono::seconds(1)); + ofstream out1("macro_name.txt"); + out1 << "FOO"; + + return 0; +} |