diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..a7906a9f1a93cc4793757351a536d2a90be9aee8 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,36 @@ +cmake_minimum_required (VERSION 2.8) +project (teec_adaptor) +cmake_policy (SET CMP0037 OLD) + +# Add source files +set(SRCS ./src/CA/cloud/libteec_adaptor.c) + +# Add header file include directories +include_directories( + ./include/CA + ./thirdparty/open_source/liboundscheck/include +) + +# Set options +set(CMAKE_TEEC_ADAPTOR_FLAGS "-fstack-protector-strong -fPIC -ftrapv -s -D_FORTIFY_SOURCE=2 -O2") +set(CMAKE_TEEC_ADAPTOR_FLAGS "${CMAKE_TEEC_ADAPTOR_FLAGS} -z text -z now -z relro -z noexecstack -pie -shared") + +# Set output dir +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}) + +# Generate .so file +add_library(teec_adaptor SHARED ${SRCS}) +set_target_properties(teec_adaptor PROPERTIES COMPILE_FLAGS ${CMAKE_TEEC_ADAPTOR_FLAGS}) + +# Clean output +add_custom_target(clean + COMMAND rm -rf ${PROJECT_SOURCE_DIR}/libteec_adaptor.so + COMMAND @echo "clean up" +) + +# Install +add_custom_target(install + COMMAND install -d /opt/itrustee_sdk + COMMAND cp -rf ${PROJECT_SOURCE_DIR}/build ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/License ${PROJECT_SOURCE_DIR}/thirdparty /opt/itrustee_sdk + COMMAND install -pm 644 ${PROJECT_SOURCE_DIR}/libteec_adaptor.so /lib64 +) diff --git a/test/CA/helloworld/cloud/CMakeLists.txt b/test/CA/helloworld/cloud/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..42fe48666f0b0d3d8f7f4b1d2eb78c27bc746197 --- /dev/null +++ b/test/CA/helloworld/cloud/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required (VERSION 2.8) +project (teec_hello) +cmake_policy (SET CMP0037 OLD) + +# Add source files +set(SRCS + ../ca_demo.c + ../../../../src/CA/cloud/libteec_adaptor.c +) + +# Add header file include directories +include_directories( + ../../../../include/CA +) + +# Set options +set(CMAKE_TEEC_HELLO_FLAGS "-fstack-protector-strong -fPIC") +set(CMAKE_TEEC_HELLO_FLAGS "${CMAKE_TEEC_HELLO_FLAGS} -z text -z now -z relro -z noexecstack -pie") + +# Set output dir +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}) + +# Generate execute file +add_executable(rsa_demo ${SRCS}) +target_link_libraries(rsa_demo dl pthread) +set_target_properties(rsa_demo PROPERTIES COMPILE_FLAGS ${CMAKE_TEEC_HELLO_FLAGS}) + +# Clean output +add_custom_target(clean + COMMAND rm -rf ${PROJECT_SOURCE_DIR}/teec_hello + COMMAND @echo "clean up" +) diff --git a/test/TA/helloworld/cloud/CMakeLists.txt b/test/TA/helloworld/cloud/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..d7ed83aff3baaf9b6e7ef751f8878545c165e4d3 --- /dev/null +++ b/test/TA/helloworld/cloud/CMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required (VERSION 2.8) +project (teec_hello) +cmake_policy (SET CMP0037 OLD) + +# Set variable +set(iTrustee_SDK_PATH ${PROJECT_SOURCE_DIR}/../../../../) +set(SIGNTOOL_DIR ${iTrustee_SDK_PATH}/build/signtools) +set(LIBC ${iTrustee_SDK_PATH}/thirdparty/open_source/musl) +set(LIBSECURE ${iTrustee_SDK_PATH}/thirdparty/open_source/libboundscheck) + +# Add source files +file(GLOB SRCS "./*.c") +set(SRCS ${SRCS} ../ta_demo.c) + +# Add header file include directories +include_directories( + ${LIBC}/libc + ${LIBC}/libc/arch/aarch64 + ${LIBC}/libc/arch/aarch64/bits + ${LIBC}/libc/arch/generic + ${LIBSECURE}/include + ${iTrustee_SDK_PATH}/include/TA + ${iTrustee_SDK_PATH}/include/TA/huawei_ext + ${PROJECT_SOURCE_DIR}/include +) + +# Set options +set(CMAKE_TA_FLAGS "-DAPI_LEVEL=1 -O -W -Wall -Werror -fno-short-enums -fno-omit-frame-pointer -fstack-protector-strong") +set(CMAKE_TA_FLAGS "${CMAKE_TA_FLAGS} -Wextra -nostdinc -nodefaultlibs -march=armv8-a -Os -Wno-main -fPIC") +set(CMAKE_TA_FLAGS "${CMAKE_TA_FLAGS} -Wno-error=unused-parameter -Wno-error=unused-but-set-variable") +set(CMAKE_TA_LD_FLAGS "-s -z text -z now -z relro -z noexecstack -shared") +set(CMAKE_TA_LD_FLAGS "${CMAKE_TA_LD_FLAGS} -T${iTrustee_SDK_PATH}/build/tools/ta_link_64.ld") + +# Set output dir +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}) + +# Generate .so file +add_library(tmp_object OBJECT ${SRCS}) +set_target_properties(tmp_object PROPERTIES COMPILE_FLAGS ${CMAKE_TA_FLAGS}) +add_library(combine SHARED $) +set_target_properties(combine PROPERTIES LINK_FLAGS ${CMAKE_TA_LD_FLAGS}) + +add_custom_command(TARGET combine + POST_BUILD + COMMAND cp -f ${PROJECT_SOURCE_DIR}/../manifest.txt ${PROJECT_SOURCE_DIR} + COMMAND python3 -B ${SIGNTOOL_DIR}/signtool_v3.py ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR} --config ${PROJECT_SOURCE_DIR}/config_cloud.ini +) + +# Clean output +add_custom_target(clean + COMMAND rm -rf ${PROJECT_SOURCE_DIR}/libcombine.so ${PROJECT_SOURCE_DIR}/*.sec + COMMAND @echo "clean up" +)