From 60f5e55489554161a5d5796ed655f22fe5d8dbc1 Mon Sep 17 00:00:00 2001 From: Luka Vandervelden Date: Thu, 29 Aug 2019 01:18:32 +0200 Subject: [PATCH] Untested cmake build backend. --- src/context.cr | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/context.cr b/src/context.cr index 0358e05..b1609a3 100644 --- a/src/context.cr +++ b/src/context.cr @@ -109,6 +109,8 @@ class Package::Context @selected_packaging_backend = @packaging_backends[0] @building_backends << Backend::Building.new "configure", "autotools" do |context, recipe| + next BuildStatus::Pass unless Dir.exists? recipe.dirname + Dir.cd recipe.dirname unless File.exists? "configure" @@ -124,7 +126,28 @@ class Package::Context end end + @building_backends << Backend::Building.new "configure", "cmake" do |context, recipe| + next BuildStatus::Pass unless Dir.exists? recipe.dirname + + Dir.cd recipe.dirname + + next BuildStatus::Pass unless File.exists? "CMakeLists.txt" + + options = [ + "-DCMAKE_INSTALL_PREFIX='#{recipe.prefix}'", + "-DCMAKE_BUILD_TYPE=Release #{recipe.options["cmake"]}" + ] + + child = context.sh "cmake . #{options.join " "}" + if child.exit_status == 0 + BuildStatus::Success + else + BuildStatus::Failed + end + end + @building_backends << Backend::Building.new "build", "make" do |context, recipe| + next BuildStatus::Pass unless Dir.exists? recipe.dirname Dir.cd recipe.dirname unless File.exists? "Makefile" @@ -141,6 +164,7 @@ class Package::Context end @building_backends << Backend::Building.new "install", "make" do |context, recipe| + next BuildStatus::Pass unless Dir.exists? recipe.dirname Dir.cd recipe.dirname unless File.exists? "Makefile"