diff options
author | flu0r1ne <flu0r1ne@flu0r1ne.net> | 2021-09-05 20:37:19 -0500 |
---|---|---|
committer | flu0r1ne <flu0r1ne@flu0r1ne.net> | 2021-09-05 20:37:19 -0500 |
commit | f5b60238e05b124eb40f805eb4a0bbfc0b043da5 (patch) | |
tree | f461bff108f5ddafc4078aa7394d7bf2a6309cc9 /adapters/gtest/templating.go | |
parent | 8f22bd4f5b4eb6996c524bcb6948d36cef0ac822 (diff) | |
parent | fd66fb134967067ed7e1c3182325f646b73c730b (diff) | |
download | deb-planr-f5b60238e05b124eb40f805eb4a0bbfc0b043da5.tar.xz deb-planr-f5b60238e05b124eb40f805eb4a0bbfc0b043da5.zip |
Merge branch 'upstream' into ppa
Merge v0.1.0
Diffstat (limited to 'adapters/gtest/templating.go')
-rw-r--r-- | adapters/gtest/templating.go | 57 |
1 files changed, 42 insertions, 15 deletions
diff --git a/adapters/gtest/templating.go b/adapters/gtest/templating.go index c49f170..41c54c1 100644 --- a/adapters/gtest/templating.go +++ b/adapters/gtest/templating.go @@ -3,17 +3,18 @@ package gtest import ( "io" "log" - "text/template" "os" + "golang.flu0r1ne.net/planr" + "text/template" ) type cmakeUnit struct { - Cname string + ExeNm string File string Srcs string }; -func genCmake(out string, units []cmakeUnit) { +func generateCmakeScript(out string, units []cmakeUnit) { file, err := os.OpenFile(out, os.O_RDWR | os.O_CREATE, 0644) defer func () { err := file.Close() @@ -27,45 +28,67 @@ func genCmake(out string, units []cmakeUnit) { log.Fatalf("Could not open CMakeFile (%s)\n%v", out, err) } - writeBoiler(file) + writeCmakeBoilerplate(file) tmpl := unitTemplate() for _, unit := range units { if err := tmpl.Execute(file, unit); err != nil { - log.Fatalf("Failed to generate unit %s: %v", unit.Cname, err); + log.Fatalf("Failed to generate unit %s: %v", unit.ExeNm, err); } } } +// TODO: Add comments func unitTemplate() *template.Template { tmpl, err := template.New("gtest_unit").Parse(` + +################################################ + +## {{.ExeNm}} + add_executable( - "{{.Cname}}" + "{{.ExeNm}}" "{{.File}}" {{.Srcs}} ) target_link_libraries( - "{{.Cname}}" + "{{.ExeNm}}" gtest_main ) gtest_discover_tests( - "{{.Cname}}" + "{{.ExeNm}}" ) `) if err != nil { - log.Fatalf("Cannot load Gtest Unit Template %v", err) + log.Fatalf("Cannot load Gtest unit template %v", err) } return tmpl } -func writeBoiler(w io.Writer) { - w.Write([]byte(` +const GOOGLE_TEST_URL = "https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip" + +func writeCmakeBoilerplate(w io.Writer) { + tmpl := boilderTemplate() + + tmpl.Execute(w, struct { + Url string + Version string + }{ + Url: GOOGLE_TEST_URL, + Version: planr.VERSION, + }) +} + +func boilderTemplate() *template.Template { + tmpl, err := template.New("gtest_boilerplate").Parse(` +# AUTOMATICALLY GENERATED BY PLANR VERSION {{.Version}} + cmake_minimum_required (VERSION 3.1.0) project(PlanRGtestAdapter) @@ -73,12 +96,16 @@ project(PlanRGtestAdapter) include(FetchContent) FetchContent_Declare( googletest - URL https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip + URL {{.Url}} ) include(GoogleTest) FetchContent_MakeAvailable(googletest) -`)) -} - +`) + + if err != nil { + log.Fatalf("Cannot load Gtest Cmake boilerplate") + } + return tmpl +} |