diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..03c2dd5 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,40 @@ +name: Build Windows (x64) + +on: + push: + +jobs: + build-windows-amd64: + runs-on: windows-latest + + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Setup vcpkg + uses: lukka/run-vcpkg@v11 + + - name: Configure (CMake + vcpkg toolchain, VS generator) + shell: pwsh + run: | + $ErrorActionPreference = 'Stop' + mkdir build -Force + + cmake -S . -B build ` + -G "Visual Studio 17 2022" -A x64 ` + -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT\scripts\buildsystems\vcpkg.cmake" ` + -DVCPKG_TARGET_TRIPLET=x64-windows-static-release ` + -DCMAKE_BUILD_TYPE=Release ` + -DIGNORE_DLL_SIGNATURES=YES + + - name: Build (Release) + shell: pwsh + run: cmake --build build --config Release --target package + + - name: Upload package + if: success() + uses: actions/upload-artifact@v6 + with: + name: lms-windows-amd64 + path: | + build/* diff --git a/CIM_Framework/CMakeLists.txt b/CIM_Framework/CMakeLists.txt index 60048d3..b11703c 100644 --- a/CIM_Framework/CMakeLists.txt +++ b/CIM_Framework/CMakeLists.txt @@ -6,7 +6,15 @@ include(GNUInstallDirs) if (CMAKE_TOOLCHAIN_FILE) set (USE_TOOLCHAIN "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") -endif (CMAKE_TOOLCHAIN_FILE) + + if("${CMAKE_TOOLCHAIN_FILE}" MATCHES "vcpkg.cmake") + list(APPEND USE_TOOLCHAIN "-DVCPKG_MANIFEST_DIR=${CMAKE_SOURCE_DIR}") + list(APPEND USE_TOOLCHAIN "-DVCPKG_INSTALLED_DIR=${VCPKG_INSTALLED_DIR}") + if (VCPKG_TARGET_TRIPLET) + list (APPEND USE_TOOLCHAIN "-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}") + endif () + endif () +endif() if (UNIX) set (WSMAN_CLIENTT_LIB_NAME wsman_curl_client_transport) diff --git a/cmake/FindACE.cmake b/cmake/FindACE.cmake index 2ec02ae..e450470 100644 --- a/cmake/FindACE.cmake +++ b/cmake/FindACE.cmake @@ -42,7 +42,7 @@ mark_as_advanced(ACE_INCLUDE_DIR ACE_LIBRARY) if(ACE_FOUND AND NOT TARGET ACE::ACE) add_library(ACE::ACE UNKNOWN IMPORTED) set_target_properties(ACE::ACE PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${ACE_INCLUDE_DIRS}") - set_target_properties(ACE::ACE PROPERTIES INTERFACE_COMPILE_OPTIONS "${ACE_DEFINITIONS}") + set_target_properties(ACE::ACE PROPERTIES INTERFACE_COMPILE_DEFINITIONS "${ACE_DEFINITIONS}") set_property(TARGET ACE::ACE APPEND PROPERTY IMPORTED_LOCATION "${ACE_LIBRARY}") set_property(TARGET ACE::ACE PROPERTY INTERFACE_LINK_LIBRARIES dl) endif() diff --git a/vcpkg.json b/vcpkg.json new file mode 100644 index 0000000..edb9cbb --- /dev/null +++ b/vcpkg.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json", + "name": "lms", + "version": "0.0.1", + "builtin-baseline": "0a434205c521ca43d66921271ae2a1d051e718a5", + "dependencies": [ + { + "name": "libiconv" + }, + { + "name": "libxml2", + "features": ["iconv"] + }, + { + "name": "ace", + "features": ["wchar"] + } + ] +}