-cmake_minimum_required(VERSION 2.6)
-# Java requires 2.8.6
-message(STATUS "Cmake version ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}$")
+cmake_minimum_required(VERSION 2.6) # Java requires 2.8.6
+message(STATUS "Cmake version ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}")
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_HOME_DIRECTORY}/tools/cmake/Modules)
project(SimGrid C CXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -g")
- if (CMAKE_COMPILER_IS_GNUCC)
- if (COMPILER_CXX_VERSION_MAJOR_MINOR STRLESS "4.7")
+ if (CMAKE_COMPILER_IS_GNUCC)
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.7")
message(FATAL_ERROR
- "SimGrid needs at least g++ version 4.7 to compile "
- "(c++11 support of previous versions is too limited).")
+ "SimGrid needs at least g++ version 4.7 to compile but you have ${CMAKE_CXX_COMPILER_VERSION}."
+ "You need a sufficient support of c++11 to compile SimGrid.")
endif()
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
else()
message(FATAL_ERROR
- "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. "
+ "The compiler ${CMAKE_CXX_COMPILER} (v${CMAKE_CXX_COMPILER_VERSION}) has no C++11 support. "
"Please use a decent C++ compiler.")
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
else()
message(FATAL_ERROR
- "The compiler ${CMAKE_C_COMPILER} has no C11 support. "
+ "The compiler ${CMAKE_C_COMPILER} (v${CMAKE_C_COMPILER_VERSION}) has no C11 support. "
"Please use a decent C compiler "
"(note that c++11 support of ${CMAKE_CXX_COMPILER} seems ok).")
endif()
- if(APPLE AND ("4.6" GREATER COMPILER_C_VERSION_MAJOR_MINOR))
+ if(APPLE AND (CMAKE_C_COMPILER_VERSION VERSION_LESS "4.6"))
### gcc 4.[1-5] cannot compile ucontext on OSX
message(STATUS "Ucontext can't be used with this version of gcc (must be greater than 4.5)")
set(HAVE_UCONTEXT_H 0)
endif()
endif()
-if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
- exec_program("${CMAKE_C_COMPILER} --version" OUTPUT_VARIABLE "COMPILER_C_VERSION")
- exec_program("${CMAKE_CXX_COMPILER} --version" OUTPUT_VARIABLE "COMPILER_CXX_VERSION")
- string(REGEX MATCH "[0-9].[0-9].[0-9]" COMPILER_C_VERSION "${COMPILER_C_VERSION}")
- string(REGEX MATCH "[0-9].[0-9].[0-9]" COMPILER_CXX_VERSION "${COMPILER_CXX_VERSION}")
-
- string(REGEX MATCH "^[0-9].[0-9]" COMPILER_C_VERSION_MAJOR_MINOR "${COMPILER_C_VERSION}")
- string(REPLACE "${COMPILER_C_VERSION_MAJOR_MINOR}." "" COMPILER_C_VERSION_PATCH "${COMPILER_C_VERSION}")
-endif()
-
exec_program("${CMAKE_LINKER} --version" OUTPUT_VARIABLE "LINKER_VERSION")
string(REGEX MATCH "[0-9].[0-9]*" LINKER_VERSION "${LINKER_VERSION}")
string(REGEX REPLACE "/bin/gcc.*" "/include" CMAKE_INCLUDE_WIN "${CMAKE_INCLUDE_WIN}")
string(REGEX REPLACE "/bin/gcc.*" "/lib" CMAKE_LIB_WIN "${CMAKE_LIB_WIN}")
set(INCLUDES ${INCLUDES} ${CMAKE_INCLUDE_WIN})
+ unset(CMAKE_INCLUDE_WIN)
- if(CMAKE_COMPILER_IS_GNUCC)
- set(__GNUC__ 1)
- exec_program("${CMAKE_C_COMPILER} --version" OUTPUT_VARIABLE "COMPILER_C_VERSION")
- string(REGEX MATCH "[0-9].[0-9].[0-9]" COMPILER_C_VERSION "${COMPILER_C_VERSION}")
- string(REGEX MATCH "^[0-9]" COMPILER_C_MAJOR_VERSION "${COMPILER_C_VERSION}")
- string(REGEX MATCH "^[0-9].[0-9]" COMPILER_C_MINOR_VERSION "${COMPILER_C_VERSION}")
- string(REGEX REPLACE "^${COMPILER_C_MAJOR_VERSION}." "" COMPILER_C_MINOR_VERSION "${COMPILER_C_MINOR_VERSION}")
- endif()
-
+ find_program(NSIS_PROGRAM NAMES makensi)
set(NSIS_WIN_VERSION $ENV{PROCESSOR_ARCHITEW6432})
if(NSIS_WIN_VERSION MATCHES "")
set(NSIS_WIN_VERSION $ENV{PROCESSOR_ARCHITECTURE})
set(_XBT_WIN32 1)
- message(STATUS "C_COMPILER ${CMAKE_C_COMPILER} ${COMPILER_C_VERSION_MAJOR_MINOR}")
- message(STATUS "CXX_COMPILER ${CMAKE_CXX_COMPILER} ${COMPILER_CXX_VERSION_MAJOR_MINOR}")
+ message(STATUS "C_COMPILER ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_VERSION}")
+ message(STATUS "CXX_COMPILER ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_VERSION}")
message(STATUS "CMAKE_RC_COMPILER ${CMAKE_RC_COMPILER}")
- message(STATUS "INCLUDE ${CMAKE_INCLUDE_WIN}")
message(STATUS "LIB ${CMAKE_LIB_WIN}")
message(STATUS "MAKE_PROGRAM ${CMAKE_MAKE_PROGRAM}")
message(STATUS "CMAKE_BUILD_TOOL ${CMAKE_BUILD_TOOL}")
### Setup Options
include(${CMAKE_HOME_DIRECTORY}/tools/cmake/Option.cmake)
-set(CMAKE_MODULE_PATH
- ${CMAKE_MODULE_PATH}
- ${CMAKE_HOME_DIRECTORY}/tools/cmake/Modules
- )
-
### Determine the assembly flavor that we need today
include(CMakeDetermineSystem)
IF(CMAKE_SYSTEM_PROCESSOR MATCHES ".86|AMD64|amd64")
--- /dev/null
+#! ./tesh
+
+p Testing the mechanism for computing host energy consumption in case of VMs
+
+$ $SG_TEST_EXENV energy/vm/energy_vm$EXEEXT ${srcdir:=.}/../platforms/energy_platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [ 0.000000] (1:dvfs@MyHost1) Creating and starting two VMs
+> [ 0.000000] (0:@) Create VM(vm1)@PM(MyHost1) with 0 mounted disks
+> [ 0.000000] (0:@) Create VM(vm2)@PM(MyHost3) with 0 mounted disks
+> [ 0.000000] (1:dvfs@MyHost1) Create two tasks on Host1: one inside a VM, the other directly on the host
+> [ 0.000000] (1:dvfs@MyHost1) Create two tasks on Host2: both directly on the host
+> [ 0.000000] (1:dvfs@MyHost1) Create two tasks on Host3: both inside a VM
+> [ 0.000000] (1:dvfs@MyHost1) Wait 5 seconds. The tasks are still running (they run for 3 seconds, but 2 tasks are co-located, so they run for 6 seconds)
+> [ 5.000000] (1:dvfs@MyHost1) Wait another 5 seconds. The tasks stop at some point in between
+> [ 6.000000] (4:p21@MyHost2) This worker is done.
+> [ 6.000000] (5:p22@MyHost2) This worker is done.
+> [ 6.000000] (3:p12@MyHost1) This worker is done.
+> [ 6.000000] (2:p11@vm1) This worker is done.
+> [ 6.000000] (6:p31@vm2) This worker is done.
+> [ 6.000000] (7:p32@vm2) This worker is done.
+> [ 10.000000] (0:@) Total simulation time: 10.00; All hosts must have the exact same energy consumption.
+> [ 10.000000] (0:@) Total energy of host MyHost1: 1580.000000 Joules
+> [ 10.000000] (0:@) Total energy of host MyHost2: 1600.000000 Joules
+> [ 10.000000] (0:@) Total energy of host MyHost3: 1600.000000 Joules
endif()
message("")
message(" Compiler: C .................: ${CMAKE_C_COMPILER} (${CMAKE_C_COMPILER_ID})")
-message(" version .............: ${COMPILER_C_VERSION}")
+message(" version .............: ${CMAKE_C_COMPILER_VERSION}")
if(CMAKE_CXX_COMPILER)
message(" Compiler: C++ ...............: ${CMAKE_CXX_COMPILER} (${CMAKE_CXX_COMPILER_ID})")
- message(" version .............: ${COMPILER_CXX_VERSION}")
+ message(" version .............: ${CMAKE_CXX_COMPILER_VERSION}")
endif()
if(HAVE_Java)
message(" Compiler: Javac .............: ${Java_JAVAC_EXECUTABLE}")
endif()
if(CMAKE_Fortran_COMPILER)
message(" Compiler: Fortran ...........: ${CMAKE_Fortran_COMPILER} (${CMAKE_Fortran_COMPILER_ID})")
- message(" version .............: ${COMPILER_Fortran_VERSION}")
+ message(" version .............: ${CMAKE_Fortran_COMPILER_VERSION}")
endif()
message(" Linker: .....................: ${CMAKE_LINKER}")
message(" version .............: ${LINKER_VERSION}")