mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-10-01 01:36:09 -04:00
76 lines
2.6 KiB
CMake
76 lines
2.6 KiB
CMake
cmake_minimum_required(VERSION 3.11)
|
|
project(coordinator LANGUAGES C VERSION 0.1.0)
|
|
|
|
enable_testing()
|
|
option(COORDINATOR_STATIC_MUSL "use musl and compile coordinator statically")
|
|
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE Debug)
|
|
endif()
|
|
if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
|
set(CARGOTARGET debug)
|
|
else()
|
|
set(CARGOTARGET release)
|
|
set(CARGOFLAGS --release)
|
|
endif()
|
|
|
|
if(COORDINATOR_STATIC_MUSL)
|
|
set(RUST_STATICLIB_LDFLAGS -static ${RUST_STATICLIB_LDFLAGS})
|
|
set(RUSTTARGETTRIPLE x86_64-unknown-linux-musl)
|
|
set(CARGOFLAGS ${CARGOFLAGS} "--target=${RUSTTARGETTRIPLE}")
|
|
set(CARGOTARGET ${RUSTTARGETTRIPLE}/${CARGOTARGET})
|
|
else()
|
|
set(RUST_STATICLIB_LDFLAGS -ldl -lm -lrt ${RUST_STATICLIB_LDFLAGS})
|
|
endif()
|
|
|
|
set(NITRO_CFLAGS '-I${CMAKE_BINARY_DIR}/nitro/${CARGOTARGET} -I${CMAKE_BINARY_DIR}/nitro/${CARGOTARGET}/headers')
|
|
set(NITRO_LDFLAGS '${CMAKE_BINARY_DIR}/nitro/${CARGOTARGET}/libnitro.a ${RUST_STATICLIB_LDFLAGS}')
|
|
|
|
#
|
|
# core-os disk-mapper
|
|
#
|
|
add_custom_target(disk-mapper
|
|
go build -o ${CMAKE_BINARY_DIR}/disk-mapper -ldflags "-s -w"
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/state/cmd
|
|
)
|
|
|
|
#
|
|
# coordinator
|
|
#
|
|
|
|
add_custom_target(nitro
|
|
CARGO_TARGET_DIR=${CMAKE_BINARY_DIR}/nitro cargo build ${CARGOFLAGS}
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/3rdparty/aws-nitro-enclaves-ffi)
|
|
|
|
add_custom_target(coordinator ALL
|
|
${CMAKE_COMMAND} -E env CGO_CFLAGS=${NITRO_CFLAGS}
|
|
${CMAKE_COMMAND} -E env CGO_LDFLAGS=${NITRO_LDFLAGS}
|
|
go build -o ${CMAKE_BINARY_DIR} -tags=aws,gcp -buildvcs=false -ldflags "-buildid='' -X main.version=${PROJECT_VERSION}"
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/coordinator/cmd/coordinator)
|
|
|
|
add_dependencies(coordinator nitro)
|
|
|
|
#
|
|
# cli
|
|
#
|
|
|
|
add_custom_target(cli ALL
|
|
${CMAKE_COMMAND} -E env CGO_CFLAGS=${NITRO_CFLAGS}
|
|
${CMAKE_COMMAND} -E env CGO_LDFLAGS=${NITRO_LDFLAGS}
|
|
go build -o ${CMAKE_BINARY_DIR}/constellation -buildvcs=false -tags=aws,gcp -ldflags "-buildid='' -X github.com/edgelesssys/constellation/internal/constants.CliVersion=${PROJECT_VERSION}"
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/cli)
|
|
|
|
add_dependencies(cli nitro)
|
|
|
|
#
|
|
# testing / debugging
|
|
#
|
|
|
|
add_custom_target(debug_coordinator ALL
|
|
go build -o ${CMAKE_BINARY_DIR}/debug_coordinator -buildvcs=false -ldflags "-buildid='' -X main.version=${PROJECT_VERSION}"
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/coordinator/cmd/coordinator)
|
|
|
|
add_test(NAME unittest COMMAND go test -race -count=3 ./... WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
|
|
add_test(NAME integrationtest COMMAND go test -v -tags integration ./test/ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
|
|
add_test(NAME etcd-unittest COMMAND go test -v --race -cover -count=3 -tags integration WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/coordinator/store/)
|