aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOndřej Čertík <ondrej@certik.us>2020-01-12 22:45:33 +0000
committerOndřej Čertík <ondrej@certik.us>2020-01-12 22:45:33 +0000
commit88101d7128d80a929ab526058a5ef784e567d33a (patch)
tree9422ca334f8822d17f205f4e0b8ecb34883874d7
parentee89a3e3dfeae3881065a81646c43d8ac07824a5 (diff)
parent8547d5b5c31d9b2f5bde16965027c2feffa01f9c (diff)
downloadfpm-88101d7128d80a929ab526058a5ef784e567d33a.tar.gz
fpm-88101d7128d80a929ab526058a5ef784e567d33a.zip
Merge branch 'cmake2' into 'master'
Generate CMakeLists.txt from a template See merge request certik/fpm!6
-rwxr-xr-xrun_tests.sh6
-rw-r--r--src/main.rs17
-rw-r--r--tests/2/main.f905
3 files changed, 20 insertions, 8 deletions
diff --git a/run_tests.sh b/run_tests.sh
index d47133b..8a517cc 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -7,3 +7,9 @@ fpm=$(pwd)/target/debug/fpm
cd tests/1
${fpm} build
${fpm} run
+cd ../..
+
+cd tests/2
+${fpm} build
+${fpm} run
+cd ../..
diff --git a/src/main.rs b/src/main.rs
index ddcb335..9252c56 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -26,24 +26,25 @@ fn collect_source_files() -> Vec<std::path::PathBuf> {
fn build() {
let files = collect_source_files();
+ let mut files2: String = String::new();
for file in &files {
println!("File: {}", file.to_str().unwrap());
+ if !file.to_str().unwrap().ends_with("main.f90") {
+ let s1:String = files2.to_string();
+ let s2:String = file.to_str().unwrap().to_string();
+ files2 = s1 + " " + &s2;
+ }
}
println!("Files: {:?}", files);
- let s = "\
+ let s = format!("\
cmake_minimum_required(VERSION 3.5.0 FATAL_ERROR)
enable_language(Fortran)
project(p1)
-set(SRC
- a.f90
- b.f90
-)
-
-add_executable(p1 main.f90 ${SRC})
-";
+add_executable(p1 main.f90 {})
+", files2);
std::fs::write("CMakeLists.txt", s).unwrap();
let output = std::process::Command::new("cmake")
.args(&["-B", "build", "."])
diff --git a/tests/2/main.f90 b/tests/2/main.f90
new file mode 100644
index 0000000..580da98
--- /dev/null
+++ b/tests/2/main.f90
@@ -0,0 +1,5 @@
+program test2
+implicit none
+
+print *, "OK"
+end