Browse Source

Merge topic 'posix_c'

e1adddc74e RunCMake/CXXModules/NoCXX20: Force older standard
3f7ebf9354 RunCMake/CTestTimeout: Include sched.h for pid_t
8eb8d16c19 cmSystemTools: Fix unsetenv() fallback
324ca5b489 Tests/CTestTestFdSetSize: Support plain POSIX

Acked-by: Kitware Robot <[email protected]>
Merge-request: !7408
Brad King 3 years ago
parent
commit
31cbe200f3

+ 1 - 2
Source/cmSystemTools.cxx

@@ -1501,8 +1501,7 @@ std::string cmSystemTools::RelativeIfUnder(std::string const& top,
 bool cmSystemTools::UnsetEnv(const char* value)
 {
 #  if !defined(HAVE_UNSETENV)
-  std::string var = cmStrCat(value, '=');
-  return cmSystemTools::PutEnv(var);
+  return cmSystemTools::UnPutEnv(value);
 #  else
   unsetenv(value);
   return true;

+ 12 - 2
Tests/CTestTestFdSetSize/sleep.c

@@ -1,7 +1,11 @@
 #if defined(_WIN32)
 #  include <windows.h>
-#else
+#elif _XOPEN_SOURCE >= 500 || defined(_ALL_SOURCE)
 #  include <unistd.h>
+#else
+#  include <time.h>
+
+#  include <sys/select.h>
 #endif
 
 /* sleeps for 0.1 second */
@@ -9,8 +13,14 @@ int main(int argc, char** argv)
 {
 #if defined(_WIN32)
   Sleep(100);
-#else
+#elif _XOPEN_SOURCE >= 500 || defined(_ALL_SOURCE)
   usleep(100 * 1000);
+#else
+  struct timeval tv;
+  tv.tv_sec = 0;
+  tv.tv_usec = 100 * 1000;
+
+  select(0, NULL, NULL, NULL, &tv);
 #endif
   return 0;
 }

+ 1 - 0
Tests/RunCMake/CTestTimeout/TestTimeout.c

@@ -1,6 +1,7 @@
 #if defined(_WIN32)
 #  include <windows.h>
 #else
+#  include <sched.h>
 #  include <unistd.h>
 #endif
 

+ 4 - 3
Tests/RunCMake/CXXModules/NoCXX20.cmake

@@ -5,6 +5,7 @@ target_sources(nocxx20
   PUBLIC
     FILE_SET fs TYPE CXX_MODULES FILES
       sources/module.cxx)
-target_compile_features(nocxx20
-  PRIVATE
-    cxx_std_17)
+set_target_properties(nocxx20
+  PROPERTIES
+  CXX_STANDARD 17
+  CXX_STANDARD_REQUIRED ON)