Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add a script to detect the number of core.
authornavarro <navarro@caraja.(none)>
Tue, 24 Jan 2012 10:32:04 +0000 (11:32 +0100)
committernavarro <navarro@caraja.(none)>
Tue, 24 Jan 2012 10:32:04 +0000 (11:32 +0100)
CMakeLists.txt
buildtools/Cmake/Modules/FindNbCore.cmake [new file with mode: 0644]

index 54b68d1..10b14d8 100644 (file)
@@ -233,6 +233,9 @@ else(NOT WIN32)
 include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/GenerateDocWin.cmake)  
 endif(NOT WIN32)
 
+### Print NbCore
+include(FindNbCore)
+
 ### Print ARGS
 include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/PrintArgs.cmake)
 
diff --git a/buildtools/Cmake/Modules/FindNbCore.cmake b/buildtools/Cmake/Modules/FindNbCore.cmake
new file mode 100644 (file)
index 0000000..a3c1809
--- /dev/null
@@ -0,0 +1,28 @@
+if(NOT DEFINED PROCESSOR_COUNT)
+  # Unknown:
+  set(PROCESSOR_COUNT 0)
+
+  # Linux:
+  set(cpuinfo_file "/proc/cpuinfo")
+  if(EXISTS "${cpuinfo_file}")
+    file(STRINGS "${cpuinfo_file}" procs REGEX "^processor.: [0-9]+$")
+    list(LENGTH procs PROCESSOR_COUNT)
+  endif()
+
+  # Mac:
+  if(APPLE)
+    find_program(cmd_sys_pro "system_profiler")
+    if(cmd_sys_pro)
+      execute_process(COMMAND ${cmd_sys_pro} OUTPUT_VARIABLE info)
+      string(REGEX REPLACE "^.*Total Number Of Cores: ([0-9]+).*$" "\\1"
+        PROCESSOR_COUNT "${info}")
+    endif()
+  endif()
+
+  # Windows:
+  if(WIN32)
+    set(PROCESSOR_COUNT "$ENV{NUMBER_OF_PROCESSORS}")
+  endif()
+endif()
+
+message(STATUS "Number of core ${PROCESSOR_COUNT}")
\ No newline at end of file