@@ -429,23 +429,24 @@ FUNCTION(_CMDEF_ENV_GET_ARCH arch)
429
429
RETURN ()
430
430
ENDIF ()
431
431
IF (CMDEF_OS_LINUX)
432
- CMAKE_HOST_SYSTEM_INFORMATION (RESULT _arch QUERY OS_PLATFORM)
432
+ FIND_PROGRAM (CMDEF_UNAME uname REQUIRED)
433
+ EXECUTE_PROCESS (COMMAND "${CMDEF_UNAME} " -m
434
+ OUTPUT_VARIABLE _arch
435
+ RESULT_VARIABLE result
436
+ OUTPUT_STRIP_TRAILING_WHITESPACE
437
+ )
438
+ IF (NOT (result EQUAL 0))
439
+ MESSAGE (FATAL_ERROR "Cannot determine architecture! Set up CMDEF_ARCHITECTURE manually or repair uname" )
440
+ ENDIF ()
433
441
STRING (REGEX REPLACE "[^a-zA-Z0-9.]" "-" _arch_mapped "${_arch} " )
434
442
STRING (TOLOWER "${_arch_mapped} " _arch_normalized)
435
- IF (NOT _arch_normalized)
436
- MESSAGE (FATAL_ERROR "Cannot determine system architecture."
437
- " It seems the system has system arch set to empty or invalid string."
438
- " Consult os-release file."
439
- )
440
- ENDIF ()
441
443
SET (${arch} "${_arch_normalized} " PARENT_SCOPE)
442
444
RETURN ()
443
445
ENDIF ()
444
446
MESSAGE (FATAL_ERROR "Cannot get architecture for unknown OS ${CMDEF_OS_NAME} " )
445
447
ENDFUNCTION ()
446
448
447
449
448
-
449
450
## Helper
450
451
#
451
452
# Determine distribution ID
@@ -464,15 +465,17 @@ FUNCTION(_CMDEF_ENV_GET_DISTRO_ID distro_id)
464
465
RETURN ()
465
466
ENDIF ()
466
467
IF (CMDEF_OS_LINUX)
467
- CMAKE_HOST_SYSTEM_INFORMATION (RESULT _distro_id QUERY DISTRIB_ID)
468
+ FIND_PROGRAM (CMDEF_LSB_RELEASE lsb_release REQUIRED)
469
+ EXECUTE_PROCESS (COMMAND "${CMDEF_LSB_RELEASE} " -i -s
470
+ OUTPUT_VARIABLE _distro_id
471
+ RESULT_VARIABLE result
472
+ OUTPUT_STRIP_TRAILING_WHITESPACE
473
+ )
474
+ IF (NOT (result EQUAL 0))
475
+ MESSAGE (FATAL_ERROR "Cannot determine distro ID! Set up CMDEF_DISTRO_ID manually or repair lsb_release" )
476
+ ENDIF ()
468
477
STRING (REGEX REPLACE "[^a-zA-Z0-9.]" "-" _distro_id_mapped "${_distro_id} " )
469
478
STRING (TOLOWER "${_distro_id_mapped} " _distro_id_normalized)
470
- IF (NOT _distro_id_normalized)
471
- MESSAGE (FATAL_ERROR "Cannot determine Distro ID."
472
- "It seems the system has Distro ID set to empty or invalid string."
473
- " Consult os-release file."
474
- )
475
- ENDIF ()
476
479
SET (${distro_id} "${_distro_id_normalized} " PARENT_SCOPE)
477
480
RETURN ()
478
481
ENDIF ()
@@ -499,15 +502,17 @@ FUNCTION(_CMDEF_ENV_GET_DISTRO_VERSION_ID version_id)
499
502
RETURN ()
500
503
ENDIF ()
501
504
IF (CMDEF_OS_LINUX)
502
- CMAKE_HOST_SYSTEM_INFORMATION (RESULT _version_id QUERY DISTRIB_VERSION_ID)
505
+ FIND_PROGRAM (CMDEF_LSB_RELEASE lsb_release REQUIRED)
506
+ EXECUTE_PROCESS (COMMAND "${CMDEF_LSB_RELEASE} " -r -s
507
+ OUTPUT_VARIABLE _version_id
508
+ RESULT_VARIABLE result
509
+ OUTPUT_STRIP_TRAILING_WHITESPACE
510
+ )
511
+ IF (NOT (result EQUAL 0))
512
+ MESSAGE (FATAL_ERROR "Cannot determine version ID! Set up CMDEF_DISTRO_VERSION_ID manually or repair lsb_release" )
513
+ ENDIF ()
503
514
STRING (REGEX REPLACE "[^a-zA-Z0-9.]" "-" _version_id_mapped "${_version_id} " )
504
515
STRING (TOLOWER "${_version_id_mapped} " _version_id_normalized)
505
- IF (NOT _version_id_normalized)
506
- MESSAGE (FATAL "Cannot determine Distro Version ID."
507
- " It seems the system has Distro Version ID set to empty or invalid string."
508
- " Consult os-release file."
509
- )
510
- ENDIF ()
511
516
SET (${version_id} "${_version_id_normalized} " PARENT_SCOPE)
512
517
RETURN ()
513
518
ENDIF ()
0 commit comments