From f92573fd28f959a94bdad397bc09e1e2c70e1a66 Mon Sep 17 00:00:00 2001 From: Chris Koch Date: Mon, 29 Jul 2019 12:46:41 -0700 Subject: [PATCH] Add ability to build gotgt without cgo Signed-off-by: Chris Koch --- .travis.yml | 4 ++++ Makefile | 3 +++ cmd/daemon.go | 1 - cmd/daemon_cgo.go | 22 ++++++++++++++++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 cmd/daemon_cgo.go diff --git a/.travis.yml b/.travis.yml index 9ca2d65..f323d54 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,6 +30,10 @@ before_script: script: - cd ${TRAVIS_BUILD_DIR} + # Try a build without cgo first + - make build-nocgo + - make clean + # Now build with cgo and cephstore. - make - hack/verify-gofmt.sh - go test -v ./pkg/... diff --git a/Makefile b/Makefile index 6a9e020..00f0995 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,9 @@ all: init build build: init go build -o ${BIN_DIR}/gotgt gotgt.go +build-nocgo: init + CGO_ENABLED=0 go build -o ${BIN_DIR}/gotgt gotgt.go + verify: hack/verify-gofmt.sh diff --git a/cmd/daemon.go b/cmd/daemon.go index 296a70a..e9d0e9c 100644 --- a/cmd/daemon.go +++ b/cmd/daemon.go @@ -29,7 +29,6 @@ import ( _ "github.com/gostor/gotgt/pkg/port/iscsit" "github.com/gostor/gotgt/pkg/scsi" _ "github.com/gostor/gotgt/pkg/scsi/backingstore" - _ "github.com/gostor/gotgt/pkg/scsi/backingstore/cephstore" log "github.com/sirupsen/logrus" "github.com/spf13/cobra" ) diff --git a/cmd/daemon_cgo.go b/cmd/daemon_cgo.go new file mode 100644 index 0000000..922adf6 --- /dev/null +++ b/cmd/daemon_cgo.go @@ -0,0 +1,22 @@ +// Copyright 2016 The GoStor Authors All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Only include cephstore when building with cgo. +// +build cgo + +package cmd + +import ( + _ "github.com/gostor/gotgt/pkg/scsi/backingstore/cephstore" +)