File cvm-guest-attestation.patch of Package cvm-guest-attestation

---
 CMakeLists.txt                                                                               |    5 
 client-library/src/Attestation/AttestationClient/CMakeLists.txt                              |    1 
 client-library/src/Attestation/AttestationClient/lib/DynamicLibrary/CMakeLists.txt           |   79 +++++-----
 client-library/src/Attestation/AttestationClient/lib/DynamicLibrary/azguestattestation.pc.in |    9 +
 client-library/src/Attestation/CMakeLists.txt                                                |    9 -
 client-library/src/Attestation/LinuxTpm/CMakeLists.txt                                       |    5 
 client-library/src/Attestation/LinuxTpm/lib/CMakeLists.txt                                   |   26 +--
 client-library/src/Attestation/LinuxTpm/staticshim/CMakeLists.txt                            |    7 
 cvm-attestation-sample-app/CMakeLists.txt                                                    |   29 +--
 9 files changed, 86 insertions(+), 84 deletions(-)

--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required(VERSION 3.5)
+project(cvm-guest-attestation LANGUAGES CXX)
+
+add_subdirectory(cvm-attestation-sample-app)
+add_subdirectory(client-library/src/Attestation)
--- a/client-library/src/Attestation/AttestationClient/CMakeLists.txt
+++ b/client-library/src/Attestation/AttestationClient/CMakeLists.txt
@@ -1,4 +1,3 @@
 cmake_minimum_required(VERSION 3.5)
 
 add_subdirectory(lib)
-add_subdirectory(tests)
--- a/client-library/src/Attestation/AttestationClient/lib/DynamicLibrary/CMakeLists.txt
+++ b/client-library/src/Attestation/AttestationClient/lib/DynamicLibrary/CMakeLists.txt
@@ -1,39 +1,52 @@
-cmake_minimum_required(VERSION 3.5)
+cmake_minimum_required(VERSION 3.10)
 
 #MUST be same as the version in the latest entry in debian/changelog file.
-project(azguestattestation VERSION 1.0.2)
-
-set(CMAKE_PROJECT_TARGET azguestattestation)
+project(azguestattestation LANGUAGES CXX VERSION 1.0.2)
 
+set (CMAKE_CXX_STANDARD 14)
+set (MY_TARGET_API ${PROJECT_NAME}1)
 add_definitions (-DPLATFORM_UNIX)
 
-include_directories(
-    ${CMAKE_CURRENT_SOURCE_DIR}/../../../LinuxTpm/include
-    ${CMAKE_CURRENT_SOURCE_DIR}/..
-    ${CMAKE_CURRENT_SOURCE_DIR}/../..
-    ${CMAKE_CURRENT_SOURCE_DIR}/../include
-    ${CMAKE_SOURCE_DIR}/../external/jsoncpp-0.10.7/src
-    ${CMAKE_SOURCE_DIR}/../external/SnpVmReport
-)
-
-add_library(${CMAKE_PROJECT_TARGET} SHARED ../../AttestationHelperBase64.cpp
-                                           ../../AttestationHelperJson.cpp
-                                           ../AttestationClientImpl.cpp
-                                           ../AttestationClient.cpp
-                                           ../AttestationParameters.cpp
-                                           ../TpmInfo.cpp
-                                           ../Logging.cpp
-                                           ../TpmUnseal.cpp
-                                           ../NativeConverter.cpp
-                                           ../AttestationLibUtils.cpp
-                                           ../ImdsOperations.cpp
-                                           ../IsolationInfo.cpp
-                                           ../HclReportParser.cpp
-                                           ../HttpClient.cpp
-                                           ${CMAKE_SOURCE_DIR}/../external/jsoncpp-0.10.7/src/jsoncpp.cpp)
-
-target_link_libraries(${CMAKE_PROJECT_TARGET} Tpm2)
-target_link_libraries(${CMAKE_PROJECT_TARGET} curl)
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(EXTERNAL REQUIRED jsoncpp libcrypto libcurl)
 
-set_target_properties(${CMAKE_PROJECT_TARGET} PROPERTIES VERSION ${PROJECT_VERSION})
-set_target_properties(${CMAKE_PROJECT_TARGET} PROPERTIES SOVERSION 1)
+add_library(${PROJECT_NAME} SHARED
+	../../AttestationHelperBase64.cpp
+	../../AttestationHelperJson.cpp
+	../AttestationClient.cpp
+	../AttestationClientImpl.cpp
+	../AttestationLibUtils.cpp
+	../AttestationParameters.cpp
+	../HclReportParser.cpp
+	../HttpClient.cpp
+	../ImdsOperations.cpp
+	../IsolationInfo.cpp
+	../Logging.cpp
+	../NativeConverter.cpp
+	../TpmInfo.cpp
+	../TpmUnseal.cpp
+	)
+target_include_directories(${PROJECT_NAME}
+	PRIVATE
+		${EXTERNAL_INCLUDE_DIRS}
+		${CMAKE_CURRENT_SOURCE_DIR}/../..
+		${CMAKE_CURRENT_SOURCE_DIR}/../../../../external/SnpVmReport
+	PUBLIC
+		${CMAKE_CURRENT_SOURCE_DIR}/../include
+	)
+target_link_libraries(${PROJECT_NAME} ${EXTERNAL_LIBRARIES})
+target_link_libraries(${PROJECT_NAME} LinuxTpm)
+
+file(GLOB HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/../include/*.h)
+set_target_properties(${PROJECT_NAME} PROPERTIES
+	VERSION ${PROJECT_VERSION}
+	SOVERSION 1
+	PUBLIC_HEADER "${HEADERS}"
+	)
+include(GNUInstallDirs)
+configure_file(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
+install(TARGETS ${PROJECT_NAME}
+	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${MY_TARGET_API}
+	)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
--- /dev/null
+++ b/client-library/src/Attestation/AttestationClient/lib/DynamicLibrary/azguestattestation.pc.in
@@ -0,0 +1,9 @@
+prefix="@CMAKE_INSTALL_PREFIX@"
+libdir="${prefix}/@CMAKE_INSTALL_LIBDIR@"
+includedir="${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@MY_TARGET_API@"
+
+Name: @PROJECT_NAME@
+Description: @PROJECT_NAME@
+Version: @PROJECT_VERSION@
+Cflags: -I${includedir}
+Libs: -L${libdir} -l@PROJECT_NAME@
--- a/client-library/src/Attestation/CMakeLists.txt
+++ b/client-library/src/Attestation/CMakeLists.txt
@@ -1,13 +1,4 @@
 cmake_minimum_required(VERSION 3.5)
 
-if (NOT DEFINED ENV{CC} )
-    set (CMAKE_C_COMPILER "/usr/bin/gcc-8")
-    set (CMAKE_CXX_COMPILER "/usr/bin/g++-8")
-endif ()
-set (CMAKE_CXX_STANDARD 14)
-
-set(CMAKE_MODULE_PATH "${MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/LinuxTpm/tools/cmake")
-add_definitions (-DPLATFORM_UNIX)
-
 add_subdirectory(AttestationClient)
 add_subdirectory(LinuxTpm)
--- a/client-library/src/Attestation/LinuxTpm/CMakeLists.txt
+++ b/client-library/src/Attestation/LinuxTpm/CMakeLists.txt
@@ -1,9 +1,4 @@
 cmake_minimum_required(VERSION 3.5)
-project(Client)
-
-project (TpmBuild)
 
 add_subdirectory(staticshim)
 add_subdirectory(lib)
-add_subdirectory(testclient)
-add_subdirectory(unittests)
--- a/client-library/src/Attestation/LinuxTpm/lib/CMakeLists.txt
+++ b/client-library/src/Attestation/LinuxTpm/lib/CMakeLists.txt
@@ -1,18 +1,20 @@
 cmake_minimum_required (VERSION 3.5)
 
-set (CMAKE_PROJECT_TARGET Tpm2)
-project (Linux${CMAKE_PROJECT_TARGET})
+project (LinuxTpm LANGUAGES CXX)
+set (CMAKE_CXX_STANDARD 14)
+add_definitions (-DPLATFORM_UNIX)
 
-find_package(Tss2 REQUIRED)
-include_directories(${TSS2_INCLUDE_DIRS})
-
-include_directories (${CMAKE_CURRENT_SOURCE_DIR}/../include)
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(EXTERNAL REQUIRED tss2-esys tss2-mu tss2-tcti-device openssl)
 
 file(GLOB SOURCES "*.cpp")
 
-add_library(${CMAKE_PROJECT_TARGET} ${SOURCES})
-target_link_libraries(${CMAKE_PROJECT_TARGET} ${TSS2_LIBRARIES})
-target_link_libraries(${CMAKE_PROJECT_TARGET} ssl crypto)
-target_link_libraries(${CMAKE_PROJECT_TARGET} dl)
-target_link_libraries(${CMAKE_PROJECT_TARGET} tss2-mu)
-set_property(TARGET ${CMAKE_PROJECT_TARGET} PROPERTY POSITION_INDEPENDENT_CODE ON)
+add_library(${PROJECT_NAME} STATIC ${SOURCES})
+target_include_directories(${PROJECT_NAME}
+	PRIVATE
+		${EXTERNAL_INCLUDE_DIRS}
+	PUBLIC
+		${CMAKE_CURRENT_SOURCE_DIR}/../include
+	)
+target_link_libraries(${PROJECT_NAME} ${EXTERNAL_LIBRARIES})
+set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON)
--- a/client-library/src/Attestation/LinuxTpm/staticshim/CMakeLists.txt
+++ b/client-library/src/Attestation/LinuxTpm/staticshim/CMakeLists.txt
@@ -1,7 +1,6 @@
 cmake_minimum_required(VERSION 3.5)
 
-project(TssStaticShim)
-set(CMAKE_PROJECT_TARGET TssStaticShim)
-
-add_library(${CMAKE_PROJECT_TARGET} mssim_shim.cpp)
+project(TssStaticShim LANGUAGES CXX)
 
+add_library(${PROJECT_NAME} STATIC mssim_shim.cpp)
+set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON)
--- a/cvm-attestation-sample-app/CMakeLists.txt
+++ b/cvm-attestation-sample-app/CMakeLists.txt
@@ -1,26 +1,15 @@
 cmake_minimum_required(VERSION 3.5)
 
-project(AttestationClient)
-
-set(CMAKE_PROJECT_TARGET AttestationClient)
+project(AttestationClient LANGUAGES CXX)
 
 add_definitions (-DPLATFORM_UNIX)
 
-include_directories(
-     /usr/include/azguestattestation1
-     /usr/include/jsoncpp
-)
-
-link_directories (
-    /usr/lib
-    /usr/lib/x86_64-linux-gnu
-)
-
-add_executable(${CMAKE_PROJECT_TARGET} main.cpp
-                                       Utils.cpp
-					Logger.cpp
-                                       )
+add_executable(${PROJECT_NAME} main.cpp Utils.cpp Logger.cpp)
 
-target_link_libraries(${CMAKE_PROJECT_TARGET} azguestattestation)
-target_link_libraries(${CMAKE_PROJECT_TARGET} curl)
-target_link_libraries(${CMAKE_PROJECT_TARGET} jsoncpp)
\ No newline at end of file
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(EXTERNAL REQUIRED jsoncpp libcurl)
+target_include_directories(${PROJECT_NAME} PRIVATE ${EXTERNAL_INCLUDE_DIRS})
+target_link_libraries(${PROJECT_NAME} ${EXTERNAL_LIBRARIES})
+target_link_libraries(${PROJECT_NAME} azguestattestation)
+include(GNUInstallDirs)
+install(TARGETS ${PROJECT_NAME} RUNTIME)
openSUSE Build Service is sponsored by