github.com/aergoio/aergo@v1.3.1/CMakeLists.txt (about) 1 # 2 # @file CMakeLists.txt 3 # @copyright defined in aergo/LICENSE.txt 4 # 5 6 cmake_minimum_required(VERSION 3.0) 7 8 project(aergo NONE) 9 10 set(BIN_DIR ${CMAKE_CURRENT_LIST_DIR}/bin) 11 set(PROTO_DIR ${CMAKE_CURRENT_LIST_DIR}/aergo-protobuf/proto) 12 13 if(CMAKE_BUILD_TYPE MATCHES "Debug") 14 set(GCFLAGS "-gcflags=\"-N" "-l\"") 15 set(GFLAG -tags Debug) 16 endif() 17 18 add_custom_target(build ALL DEPENDS aergocli aergosvr aergoluac brick) 19 20 add_custom_target(aergocli GO111MODULE=on GOBIN=${BIN_DIR} go install ${GCFLAGS} -ldflags \"-X github.com/aergoio/aergo/cmd/aergocli/cmd.githash=`git describe --tags`\" ./cmd/aergocli/... 21 WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} 22 DEPENDS libtool) 23 24 add_custom_target(aergosvr GO111MODULE=on GOBIN=${BIN_DIR} go install ${GCFLAGS} -ldflags \"-X main.githash=`git describe --tags` -X main.gitRevision=`git rev-parse --short HEAD` -X main.gitBranch=`git rev-parse --symbolic-full-name --abbrev-ref HEAD`\" ./cmd/aergosvr/... 25 WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} 26 DEPENDS libtool) 27 28 add_custom_target(polaris GO111MODULE=on GOBIN=${BIN_DIR} go install ${GCFLAGS} -ldflags \"-X main.githash=`git describe --tags`\" ./cmd/polaris/... 29 WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}) 30 31 add_custom_target(colaris GO111MODULE=on GOBIN=${BIN_DIR} go install ${GCFLAGS} -ldflags \"-X github.com/aergoio/aergo/cmd/colaris/cmd.githash=`git describe --tags`\" ./cmd/colaris/... 32 WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}) 33 34 add_custom_target(aergoluac GO111MODULE=on GOBIN=${BIN_DIR} go install ${GCFLAGS} -ldflags \"-X main.githash=`git describe --tags`\" ./cmd/aergoluac/... 35 WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} 36 DEPENDS libtool) 37 38 add_custom_target(brick GO111MODULE=on GOBIN=${BIN_DIR} go install ${GCFLAGS} ${GFLAG} -ldflags \"-X 'github.com/aergoio/aergo/cmd/brick/context.GitHash=`git describe --tags`' 39 -X 'github.com/aergoio/aergo-lib/log.defaultConfStr=`cat ./cmd/brick/arglog.toml`'\" ./cmd/brick/... 40 WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} 41 DEPENDS libtool) 42 43 add_custom_target(deps DEPENDS libtool) 44 45 add_custom_target(check GO111MODULE=on go test -timeout 60s ./... 46 WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} 47 DEPENDS build) 48 add_custom_target(cover-check GO111MODULE=on go test -coverprofile c.out ./... 49 WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} 50 DEPENDS build) 51 52 add_custom_target(distclean GO111MODULE=on go clean .. 53 COMMAND rm -rf ${BIN_DIR}/aergo* ${BIN_DIR}/brick 54 DEPENDS libtool-clean) 55 56 add_custom_target(protoc 57 COMMAND protoc -I/usr/local/include -I${PROTO_DIR} --go_out=plugins=grpc:${CMAKE_CURRENT_LIST_DIR}/types ${PROTO_DIR}/*.proto 58 COMMAND GO111MODULE=on go build ../types/...) 59 60 add_custom_target(protoclean rm -f ../types/*.pb.go) 61 62 63 add_subdirectory(libtool)