winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

CMakeLists.txt (2175B)


      1 # Copyright (c) Microsoft Corporation.
      2 # Licensed under the MIT License.
      3 
      4 project(IntegrationDOClient LANGUAGES CXX)
      5 
      6 # Settings for do-client library
      7 set(DO_INCLUDE_SDK
      8     ON
      9     CACHE BOOL "" FORCE)
     10 set(DO_BUILD_TESTS
     11     OFF
     12     CACHE BOOL "" FORCE)
     13 if(NOT DEFINED CMAKE_BUILD_TYPE)
     14     set(CMAKE_BUILD_TYPE debug)
     15 endif()
     16 
     17 if(MSVC)
     18     set(DO_PATCH_COMMAND "")
     19 else()
     20     # Populate LSB_RELEASE_ID_SHORT with the linux distro if available
     21     find_program(LSB_RELEASE_EXEC lsb_release)
     22     execute_process(
     23         COMMAND ${LSB_RELEASE_EXEC} -is
     24         OUTPUT_VARIABLE LSB_RELEASE_ID_SHORT
     25         OUTPUT_STRIP_TRAILING_WHITESPACE)
     26 
     27     if(LSB_RELEASE_ID_SHORT STREQUAL "Ubuntu")
     28         # 1. Run bootstrap script to install Linux dependencies
     29         # 2. Build & install DO Agent, which acts as a service for the REST API
     30         set(DO_PATCH_COMMAND
     31             cd <SOURCE_DIR> && sudo ./build/scripts/bootstrap.sh --install
     32             build && python3 ./build/build.py --project agent --package-for deb
     33             && cd /tmp/build-deliveryoptimization-agent/linux-debug && sudo
     34             dpkg -i deliveryoptimization-agent_1.1.0_amd64.deb)
     35     else()
     36         message(FATAL_ERROR "Unsupported platform ${LSB_RELEASE_ID_SHORT}")
     37     endif()
     38 endif()
     39 
     40 # Include the capability of fetching external content
     41 include(FetchContent)
     42 
     43 FetchContent_Declare(
     44     do-client
     45     GIT_REPOSITORY https://github.com/microsoft/do-client.git
     46     GIT_TAG d71ade6f692dd8bc319ec3228c956517e9b29292 # v1.1.0
     47     PATCH_COMMAND "${DO_PATCH_COMMAND}")
     48 FetchContent_MakeAvailable(do-client)
     49 
     50 add_executable(${PROJECT_NAME})
     51 
     52 target_sources(${PROJECT_NAME} PRIVATE IntegrationDOClient.cpp)
     53 
     54 set(SFS_CLIENT_LIB_NAME "Microsoft::${CMAKE_PROJECT_NAME}")
     55 add_dependencies(${PROJECT_NAME} ${SFS_CLIENT_LIB_NAME})
     56 target_link_libraries(${PROJECT_NAME} PRIVATE ${SFS_CLIENT_LIB_NAME})
     57 
     58 set(DO_SDK_LIB_NAME "Microsoft::deliveryoptimization")
     59 add_dependencies(${PROJECT_NAME} ${DO_SDK_LIB_NAME})
     60 target_link_libraries(${PROJECT_NAME} PRIVATE ${DO_SDK_LIB_NAME})
     61 
     62 target_include_directories(${PROJECT_NAME} PUBLIC ../../client/include)