@@ -20,6 +20,11 @@ if (!(test-path build)) {
2020}
2121$BUILD_DIR = Join-Path " $SRC_DIR " " build"
2222
23+ if (! (test-path install_test)) {
24+ mkdir install_test
25+ }
26+ $INSTALL_TEST_DIR = Join-Path " $SRC_DIR " " install_test"
27+
2328if (! (test-path plugin)) {
2429 mkdir plugin
2530}
@@ -340,6 +345,199 @@ switch ($action) {
340345 exit $exit
341346 }
342347 }
348+ " cmake.install.test" {
349+ Remove-Item - Recurse - Force " $BUILD_DIR \*"
350+ Remove-Item - Recurse - Force " $INSTALL_TEST_DIR \*"
351+ cd " $BUILD_DIR "
352+
353+ if (Test-Path Env:\CXX_STANDARD) {
354+ $CXX_STANDARD = [int ](Get-Item Env:\CXX_STANDARD).Value
355+ } else {
356+ $CXX_STANDARD = 14
357+ }
358+ if (-not $CXX_STANDARD ) {
359+ $CXX_STANDARD = 14
360+ }
361+ Write-Host " Using CXX_STANDARD: $CXX_STANDARD "
362+
363+ $CMAKE_OPTIONS = @ (
364+ " -DCMAKE_CXX_STANDARD=$CXX_STANDARD " ,
365+ " -DCMAKE_CXX_STANDARD_REQUIRED=ON" ,
366+ " -DCMAKE_CXX_EXTENSIONS=OFF" ,
367+ " -DVCPKG_TARGET_TRIPLET=x64-windows" ,
368+ " -DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR /scripts/buildsystems/vcpkg.cmake"
369+ )
370+
371+ cmake $SRC_DIR `
372+ $CMAKE_OPTIONS `
373+ " -DCMAKE_INSTALL_PREFIX=$INSTALL_TEST_DIR " `
374+ - DWITH_ABI_VERSION_1= OFF `
375+ - DWITH_ABI_VERSION_2= ON `
376+ - DWITH_ABSEIL= OFF `
377+ - DWITH_THREAD_INSTRUMENTATION_PREVIEW= ON `
378+ - DWITH_METRICS_EXEMPLAR_PREVIEW= ON `
379+ - DWITH_ASYNC_EXPORT_PREVIEW= ON `
380+ - DWITH_OTLP_GRPC_SSL_MTLS_PREVIEW= ON `
381+ - DWITH_OTLP_RETRY_PREVIEW= ON `
382+ - DWITH_OTLP_GRPC= ON `
383+ - DWITH_OTLP_HTTP= ON `
384+ - DWITH_OTLP_FILE= ON `
385+ - DWITH_OTLP_HTTP_COMPRESSION= ON `
386+ - DWITH_HTTP_CLIENT_CURL= ON `
387+ - DWITH_PROMETHEUS= ON `
388+ - DWITH_ZIPKIN= ON `
389+ - DWITH_ELASTICSEARCH= ON `
390+ - DWITH_ETW= ON `
391+ - DWITH_EXAMPLES= ON `
392+ - DOPENTELEMETRY_INSTALL= ON
393+
394+ $exit = $LASTEXITCODE
395+ if ($exit -ne 0 ) {
396+ exit $exit
397+ }
398+
399+ cmake -- build . - j $nproc
400+ $exit = $LASTEXITCODE
401+ if ($exit -ne 0 ) {
402+ exit $exit
403+ }
404+
405+ ctest - C Debug
406+ $exit = $LASTEXITCODE
407+ if ($exit -ne 0 ) {
408+ exit $exit
409+ }
410+
411+ cmake -- build . -- target install
412+ $exit = $LASTEXITCODE
413+ if ($exit -ne 0 ) {
414+ exit $exit
415+ }
416+
417+ $env: PATH = " $INSTALL_TEST_DIR \bin;$env: PATH "
418+
419+ $CMAKE_OPTIONS_STRING = $CMAKE_OPTIONS -join " "
420+
421+ $EXPECTED_COMPONENTS = @ (
422+ " api" ,
423+ " sdk" ,
424+ " ext_common" ,
425+ " ext_http_curl" ,
426+ " exporters_in_memory" ,
427+ " exporters_ostream" ,
428+ " exporters_otlp_common" ,
429+ " exporters_otlp_file" ,
430+ " exporters_otlp_grpc" ,
431+ " exporters_otlp_http" ,
432+ " exporters_prometheus" ,
433+ " exporters_elasticsearch" ,
434+ " exporters_zipkin" ,
435+ " exporters_etw"
436+ )
437+ $EXPECTED_COMPONENTS_STRING = $EXPECTED_COMPONENTS -join " ;"
438+
439+ cmake - S " $SRC_DIR \install\test\cmake" `
440+ - B " $BUILD_DIR \install_test" `
441+ $CMAKE_OPTIONS `
442+ " -DCMAKE_PREFIX_PATH=$INSTALL_TEST_DIR " `
443+ " -DINSTALL_TEST_CMAKE_OPTIONS=$CMAKE_OPTIONS_STRING " `
444+ " -DINSTALL_TEST_COMPONENTS=$EXPECTED_COMPONENTS_STRING "
445+
446+ $exit = $LASTEXITCODE
447+ if ($exit -ne 0 ) {
448+ exit $exit
449+ }
450+
451+ ctest - C Debug -- test-dir " $BUILD_DIR \install_test" -- output- on- failure
452+ $exit = $LASTEXITCODE
453+ if ($exit -ne 0 ) {
454+ exit $exit
455+ }
456+
457+ exit 0
458+ }
459+ " cmake.dll.install.test" {
460+ cd " $BUILD_DIR "
461+ rm - Recurse - Force " $INSTALL_TEST_DIR \*"
462+
463+ $CMAKE_OPTIONS = @ (
464+ " -DCMAKE_CXX_STANDARD=17" ,
465+ " -DVCPKG_TARGET_TRIPLET=x64-windows" ,
466+ " -DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR /scripts/buildsystems/vcpkg.cmake"
467+ )
468+
469+ cmake $SRC_DIR `
470+ $CMAKE_OPTIONS `
471+ " -DCMAKE_INSTALL_PREFIX=$INSTALL_TEST_DIR " `
472+ - DOPENTELEMETRY_BUILD_DLL= 1 `
473+ - DWITH_ABI_VERSION_1= ON `
474+ - DWITH_ABI_VERSION_2= OFF `
475+ - DWITH_ABSEIL= OFF `
476+ - DWITH_THREAD_INSTRUMENTATION_PREVIEW= ON `
477+ - DWITH_METRICS_EXEMPLAR_PREVIEW= ON `
478+ - DWITH_ETW= ON `
479+ - DOPENTELEMETRY_INSTALL= ON
480+
481+ $exit = $LASTEXITCODE
482+ if ($exit -ne 0 ) {
483+ exit $exit
484+ }
485+
486+ cmake -- build . - j $nproc
487+ $exit = $LASTEXITCODE
488+ if ($exit -ne 0 ) {
489+ exit $exit
490+ }
491+
492+ ctest - C Debug
493+ $exit = $LASTEXITCODE
494+ if ($exit -ne 0 ) {
495+ exit $exit
496+ }
497+
498+ cmake -- build . -- target install
499+ $exit = $LASTEXITCODE
500+ if ($exit -ne 0 ) {
501+ exit $exit
502+ }
503+
504+ $env: PATH = " $INSTALL_TEST_DIR \bin;$env: PATH "
505+
506+ echo " $env: PATH "
507+
508+ $CMAKE_OPTIONS_STRING = $CMAKE_OPTIONS -join " "
509+
510+ $EXPECTED_COMPONENTS = @ (
511+ " api" ,
512+ " sdk" ,
513+ " ext_common" ,
514+ " exporters_in_memory" ,
515+ " exporters_ostream" ,
516+ " exporters_etw" ,
517+ " ext_dll"
518+ )
519+ $EXPECTED_COMPONENTS_STRING = $EXPECTED_COMPONENTS -join " ;"
520+
521+ cmake - S " $SRC_DIR \install\test\cmake" `
522+ - B " $BUILD_DIR \install_test" `
523+ $CMAKE_OPTIONS `
524+ " -DCMAKE_PREFIX_PATH=$INSTALL_TEST_DIR " `
525+ " -DINSTALL_TEST_CMAKE_OPTIONS=$CMAKE_OPTIONS_STRING " `
526+ " -DINSTALL_TEST_COMPONENTS=$EXPECTED_COMPONENTS_STRING "
527+
528+ $exit = $LASTEXITCODE
529+ if ($exit -ne 0 ) {
530+ exit $exit
531+ }
532+
533+ ctest - C Debug -- test-dir " $BUILD_DIR \install_test" -- output- on- failure
534+ $exit = $LASTEXITCODE
535+ if ($exit -ne 0 ) {
536+ exit $exit
537+ }
538+
539+ exit 0
540+ }
343541 default {
344542 echo " unknown action: $action "
345543 exit 1
0 commit comments