constellation/CMakeLists.txt
Malte Poll bdba9d8ba6
bazel: add build files for go (#1186)
* build: correct toolchain order
* build: gazelle-update-repos
* build: use pregenerated proto for dependencies
* update bazeldnf
* deps: tpm simulator
* Update Google trillian module
* cli: add stamping as alternative build info source
* bazel: add go_test wrappers, mark special tests and select testing deps
* deps: add libvirt deps
* deps: go-libvirt patches
* deps: cloudflare circl patches
* bazel: add go_test wrappers, mark special tests and select testing deps
* bazel: keep gazelle overrides
* bazel: cleanup bazelrc
* bazel: switch CMakeLists.txt to use bazel
* bazel: fix injection of version information via stamping
* bazel: commit all build files
* dev-docs: document bazel usage
* deps: upgrade zig-cc for go 1.20
* bazel: update Perl for macOS arm64 & Linux arm64 support
* bazel: use static perl toolchain for OpenSSL
* bazel: use static protobuf (protoc) toolchain
* deps: add git and go to nix deps

Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-03-09 15:23:42 +01:00

102 lines
3.8 KiB
CMake

cmake_minimum_required(VERSION 3.11)
project(constellation LANGUAGES C)
set(CLI_BUILD_TAGS "" CACHE STRING "Tags passed to go build of Constellation CLI.")
set(BAZEL "bazel" CACHE STRING "Path to bazel binary.")
enable_testing()
#
# disk-mapper
#
add_custom_target(disk-mapper ALL
COMMAND ${BAZEL} build //disk-mapper/cmd:cmd
COMMAND cp \$$\(${BAZEL} cquery --output=files //disk-mapper/cmd:cmd\) ${CMAKE_BINARY_DIR}/disk-mapper
COMMAND chmod +w ${CMAKE_BINARY_DIR}/disk-mapper
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
BYPRODUCTS disk-mapper
)
#
# measurement-reader
#
add_custom_target(measurement-reader ALL
COMMAND ${BAZEL} build //measurement-reader/cmd:cmd
COMMAND cp \$$\(${BAZEL} cquery --output=files //measurement-reader/cmd:cmd\) ${CMAKE_BINARY_DIR}/measurement-reader
COMMAND chmod +w ${CMAKE_BINARY_DIR}/measurement-reader
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
BYPRODUCTS measurement-reader
)
#
# bootstrapper
#
add_custom_target(bootstrapper ALL
COMMAND ${BAZEL} build //bootstrapper/cmd/bootstrapper:bootstrapper
COMMAND cp \$$\(${BAZEL} cquery --output=files //bootstrapper/cmd/bootstrapper:bootstrapper\) ${CMAKE_BINARY_DIR}/bootstrapper
COMMAND chmod +w ${CMAKE_BINARY_DIR}/bootstrapper
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
BYPRODUCTS bootstrapper
)
#
# upgrade-agent
#
add_custom_target(upgrade-agent ALL
COMMAND ${BAZEL} build //upgrade-agent/cmd:cmd
COMMAND cp \$$\(${BAZEL} cquery --output=files //upgrade-agent/cmd:cmd\) ${CMAKE_BINARY_DIR}/upgrade-agent
COMMAND chmod +w ${CMAKE_BINARY_DIR}/upgrade-agent
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
BYPRODUCTS upgrade-agent
)
#
# cli
#
add_custom_target(cli ALL
COMMAND ${BAZEL} build --@io_bazel_rules_go//go/config:tags='${CLI_BUILD_TAGS}' --platforms=@local_config_platform//:host //cli:cli_oss
COMMAND cp \$$\(${BAZEL} cquery --@io_bazel_rules_go//go/config:tags='${CLI_BUILD_TAGS}' --platforms=@local_config_platform//:host --output=files //cli:cli_oss\) ${CMAKE_BINARY_DIR}/constellation
COMMAND chmod +w ${CMAKE_BINARY_DIR}/constellation
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
BYPRODUCTS constellation
)
#
# debugd
#
add_custom_target(debugd ALL
COMMAND ${BAZEL} build //debugd/cmd/debugd:debugd
COMMAND cp \$$\(${BAZEL} cquery --output=files //debugd/cmd/debugd:debugd\) ${CMAKE_BINARY_DIR}/debugd
COMMAND chmod +w ${CMAKE_BINARY_DIR}/debugd
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
BYPRODUCTS debugd
)
#
# cdbg
#
add_custom_target(cdbg ALL
COMMAND ${BAZEL} build --platforms=@local_config_platform//:host //debugd/cmd/cdbg:cdbg
COMMAND cp \$$\(${BAZEL} cquery --platforms=@local_config_platform//:host --output=files //debugd/cmd/cdbg:cdbg\) ${CMAKE_BINARY_DIR}/cdbg
COMMAND chmod +w ${CMAKE_BINARY_DIR}/cdbg
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
BYPRODUCTS cdbg
)
add_test(NAME unit COMMAND bash -c "go test -race -count=3 $(go list -f '{{.Dir}}/...' -m | xargs)" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
add_test(NAME integration-node-operator COMMAND make test WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/operators/constellation-node-operator)
add_test(NAME integration-csi COMMAND bash -c "go test -tags integration -c ./test/ && sudo ./test.test -test.v" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/csi)
add_test(NAME integration-dm COMMAND bash -c "go test -tags integration -c ./test/ && sudo ./test.test -test.v" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/disk-mapper/internal)
add_test(NAME integration-license COMMAND bash -c "go test -tags integration" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/internal/license)
#
# format
#
add_custom_target(format
COMMAND bash -c "${BAZEL} run //:buildifier-fix"
COMMAND bash -c "${BAZEL} run //:gazelle"
COMMAND bash -c "${BAZEL} run //:gazelle-update-repos"
COMMAND bash -c "shfmt -i 2 -s -w -sr $(shfmt -f ${CMAKE_SOURCE_DIR} | grep -v helm/charts/cilium)"
COMMAND bash -c "gofumpt -l -w ${CMAKE_SOURCE_DIR}"
VERBATIM
)