github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/sawtooth-core-master/consensus/poet/sgx/CMakeLists.txt (about) 1 # Copyright 2017 Intel Corporation 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with the License. 5 # You may obtain a copy of the License at 6 # 7 # http://www.apache.org/licenses/LICENSE-2.0 8 # 9 # Unless required by applicable law or agreed to in writing, software 10 # distributed under the License is distributed on an "AS IS" BASIS, 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 # See the License for the specific language governing permissions and 13 # limitations under the License. 14 # ------------------------------------------------------------------------------ 15 16 CMAKE_MINIMUM_REQUIRED(VERSION 3.2 FATAL_ERROR) 17 PROJECT(sawtooth-poet CXX) 18 19 LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") 20 21 SET (EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) 22 SET (LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib) 23 24 SET(DEPS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps") 25 26 # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 27 # COMPILER OPTIONS 28 # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 29 30 31 # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 32 # ADDITIONAL LIBRARIES 33 # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 34 35 # SGX -- should move to findsgx 36 OPTION(SGX_USE_SIMULATOR "Use the sgx simulator" FALSE) 37 38 IF(MSVC) 39 SET(SGX_EDGER "$ENV{SGXSDKInstallPath}bin/win32/Release/sgx_edger8r.exe") 40 SET(SGX_SIGN "$ENV{SGXSDKInstallPath}bin/win32/release/sgx_sign.exe") 41 SET(SGX_LIB_DIRS_DEBUG "$ENV{SGXSDKInstallPath}bin/x64/Debug") 42 SET(SGX_LIB_DIRS_RELEASE "$ENV{SGXSDKInstallPath}bin/x64/Release") 43 ELSE() 44 SET(SGX_EDGER "$ENV{SGXSDKInstallPath}bin/x64/sgx_edger8r") 45 SET(SGX_SIGN "$ENV{SGXSDKInstallPath}bin/x64/sgx_sign") 46 ENDIF() 47 48 SET(SGX_INCLUDE "$ENV{SGXSDKInstallPath}include") 49 SET(SGX_ENCLAVE_INCLUDE "$ENV{SGXSDKInstallPath}include" 50 "$ENV{SGXSDKInstallPath}include/tlibc" 51 "$ENV{SGXSDKInstallPath}include/stlport") 52 53 SET(SGX_LIBS_TRUSTED_NAMES sgx_tstdc sgx_tstdcxx sgx_tkey_exchange sgx_tcrypto) 54 SET(SGX_LIBS_UNTRUSTED_NAMES sgx_ukey_exchange) 55 56 IF(MSVC) 57 SET(SGX_LIBS_UNTRUSTED_NAMES sgx_ukey_exchangemt ${SGX_LIBS_UNTRUSTED_NAMES}) 58 ELSE() 59 SET(SGX_LIBS_UNTRUSTED_NAMES ${SGX_LIBS_UNTRUSTED_NAMES} pthread ) 60 ENDIF() 61 62 IF(${SGX_USE_SIMULATOR}) 63 ADD_DEFINITIONS(-D SGX_SIMULATOR) 64 SET(SGX_LIBS_TRUSTED_NAMES sgx_trts_sim sgx_tservice_sim ${SGX_LIBS_TRUSTED_NAMES}) 65 SET(SGX_LIBS_UNTRUSTED_NAMES sgx_urts_sim sgx_uae_service_sim ${SGX_LIBS_UNTRUSTED_NAMES}) 66 ELSE() 67 SET(SGX_LIBS_TRUSTED_NAMES sgx_trts sgx_tservice ${SGX_LIBS_TRUSTED_NAMES}) 68 SET(SGX_LIBS_UNTRUSTED_NAMES sgx_urts sgx_uae_service ${SGX_LIBS_UNTRUSTED_NAMES}) 69 ENDIF() 70 71 FOREACH(lib ${SGX_LIBS_TRUSTED_NAMES} ${SGX_LIBS_UNTRUSTED_NAMES}) 72 IF(MSVC) 73 SET(${lib} optimized ${SGX_LIB_DIRS_RELEASE}/${lib}${CMAKE_STATIC_LIBRARY_SUFFIX} debug ${SGX_LIB_DIRS_DEBUG}/${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}) 74 ELSE() 75 SET(${lib} ${lib}) 76 ENDIF() 77 ENDFOREACH(lib) 78 79 FOREACH(lib ${SGX_LIBS_TRUSTED_NAMES}) 80 SET(SGX_LIBS_TRUSTED ${SGX_LIBS_TRUSTED} ${${lib}}) 81 ENDFOREACH(lib) 82 83 FOREACH(lib ${SGX_LIBS_UNTRUSTED_NAMES}) 84 SET(SGX_LIBS_UNTRUSTED ${SGX_LIBS_UNTRUSTED} ${${lib}}) 85 ENDFOREACH(lib) 86 87 # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 88 FUNCTION(SGX_EDGE_TRUSTED EDL EDGE_FILES) 89 GET_FILENAME_COMPONENT(EDL_BASE_NAME ${EDL} NAME_WE) 90 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) 91 92 SET (EDGE_FILES_LIST "${CMAKE_CURRENT_BINARY_DIR}/${EDL_BASE_NAME}_t.h" "${CMAKE_CURRENT_BINARY_DIR}/${EDL_BASE_NAME}_t.c") 93 SET (${EDGE_FILES} ${EDGE_FILES_LIST} PARENT_SCOPE) 94 ADD_CUSTOM_COMMAND( OUTPUT ${EDGE_FILES_LIST} 95 COMMAND "${SGX_EDGER}" --trusted ${EDL} --search-path ${SGX_INCLUDE} 96 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} 97 DEPENDS ${PROJECT_EDL} 98 ) 99 ENDFUNCTION() 100 101 FUNCTION(SGX_EDGE_UNTRUSTED EDL EDGE_FILES) 102 GET_FILENAME_COMPONENT(EDL_BASE_NAME ${EDL} NAME_WE) 103 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) 104 105 SET (EDGE_FILES_LIST "${CMAKE_CURRENT_BINARY_DIR}/${EDL_BASE_NAME}_u.h" "${CMAKE_CURRENT_BINARY_DIR}/${EDL_BASE_NAME}_u.c") 106 SET (${EDGE_FILES} ${EDGE_FILES_LIST} PARENT_SCOPE) 107 ADD_CUSTOM_COMMAND( OUTPUT ${EDGE_FILES_LIST} 108 COMMAND "${SGX_EDGER}" --untrusted ${EDL} --search-path ${SGX_INCLUDE} 109 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} 110 DEPENDS ${PROJECT_EDL} 111 ) 112 ENDFUNCTION() 113 114 FUNCTION(SGX_SIGN_ENCLAVE TARGET KEY_FILE CONFIG) 115 SET (ENCLAVE $<TARGET_FILE:${TARGET}>) 116 117 SET (SIGNED_ENCLAVE ${LIBRARY_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/${TARGET}.signed${CMAKE_SHARED_LIBRARY_SUFFIX}) 118 SET (SIGNED_ENCLAVE ${SIGNED_ENCLAVE} PARENT_SCOPE) 119 ADD_CUSTOM_COMMAND( TARGET ${TARGET} 120 POST_BUILD 121 COMMAND "${SGX_SIGN}" sign -key "${KEY_FILE}" -enclave "${ENCLAVE}" -out "${SIGNED_ENCLAVE}" -config "${CONFIG}" 122 ) 123 ENDFUNCTION() 124 125 # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 126 127 128 # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 129 IF( WIN32 ) 130 MACRO( SET_RUNTIME type ) 131 if(${type} STREQUAL "DYNAMIC") 132 SET(RTS "/MT") 133 SET(RTD "/MD") 134 ELSEIF(${type} STREQUAL "STATIC") 135 SET(RTS "/MD") 136 SET(RTD "/MT") 137 ELSE() 138 MESSAGE(SEND_ERROR "Unknown runtime ${type}") 139 ENDIF() 140 FOREACH(bt ${CMAKE_CONFIGURATION_TYPES}) 141 STRING(TOUPPER "CMAKE_C_FLAGS_${bt}" variable) 142 STRING(REGEX REPLACE ${RTS} ${RTD} ${variable} "${${variable}}") 143 STRING(TOUPPER "CMAKE_CXX_FLAGS_${bt}" variable) 144 STRING(REGEX REPLACE ${RTS} ${RTD} ${variable} "${${variable}}") 145 ENDFOREACH() 146 ENDMACRO() 147 ELSE() 148 MACRO( SET_RUNTIME type ) 149 ENDMACRO() 150 ENDIF() 151 152 # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 153 154 INCLUDE_DIRECTORIES(${SGX_INCLUDE}) 155 LINK_DIRECTORIES() 156 157 # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 158 # PROJECTS 159 # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 160 ADD_SUBDIRECTORY (sawtooth_poet_sgx/libpoet_enclave) 161 ADD_SUBDIRECTORY (sawtooth_poet_sgx/libpoet_bridge)