Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add HelloWorld example for windows.
authorNavarrop <Pierre.Navarro@imag.fr>
Wed, 29 Jun 2011 13:56:31 +0000 (15:56 +0200)
committerNavarrop <Pierre.Navarro@imag.fr>
Wed, 29 Jun 2011 13:56:41 +0000 (15:56 +0200)
Template for compile with simgrid_installer.

doc/HelloWorld/CMakeLists.txt [new file with mode: 0644]
doc/HelloWorld/FindSimGrid.cmake [new file with mode: 0644]
doc/HelloWorld/HelloWorld.c [new file with mode: 0644]

diff --git a/doc/HelloWorld/CMakeLists.txt b/doc/HelloWorld/CMakeLists.txt
new file mode 100644 (file)
index 0000000..a9c130c
--- /dev/null
@@ -0,0 +1,36 @@
+cmake_minimum_required(VERSION 2.8)
+### Need to set rc ccompiler before enable language
+if(WIN32)
+    SET(CMAKE_RC_COMPILER "windres")
+endif(WIN32)
+
+project(HelloWorld C)
+set(CMAKE_C_FLAGS "" CACHE TYPE INTERNAL FORCE)
+set(CMAKE_EXE_LINKER_FLAGS "" CACHE TYPE INTERNAL FORCE)
+
+########
+## GCC #
+########
+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].[0-9]" COMPILER_C_VERSION_MAJOR_MINOR "${COMPILER_C_VERSION}")
+string(REPLACE "${COMPILER_C_VERSION_MAJOR_MINOR}." "" COMPILER_C_VERSION_PATCH "${COMPILER_C_VERSION}")
+
+###############################
+# Test the build dependencies #
+###############################
+include(FindSimGrid.cmake)
+
+#########
+# FLAGS #
+#########
+set(INCLUDE_PATH "-I$ENV{SIMGRID_ROOT}/include -I$ENV{SIMGRID_ROOT}/src -I$ENV{SIMGRID_ROOT}/src/include")
+set(LIB_PATH "-L$ENV{SIMGRID_ROOT}/lib")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${INCLUDE_PATH} ${LIB_PATH}")
+
+###########
+# TARGETS #
+###########
+
+add_executable(HelloWorld HelloWorld)
+target_link_libraries(HelloWorld simgrid)
\ No newline at end of file
diff --git a/doc/HelloWorld/FindSimGrid.cmake b/doc/HelloWorld/FindSimGrid.cmake
new file mode 100644 (file)
index 0000000..79aaa78
--- /dev/null
@@ -0,0 +1,96 @@
+#IF YOU HAVE INSTALL SIMGRID IN A SPECIAL DIRECTORY
+#YOU CAN SPECIFY SIMGRID_ROOT OR GRAS_ROOT
+
+# TO CALL THIS FILE USE
+       #set(CMAKE_MODULE_PATH 
+       #${CMAKE_MODULE_PATH}
+       #${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Modules
+       #)
+
+find_library(HAVE_SIMGRID_LIB
+    NAME simgrid
+    HINTS
+    $ENV{LD_LIBRARY_PATH}
+    $ENV{GRAS_ROOT}
+       $ENV{SIMGRID_ROOT}
+    PATH_SUFFIXES lib64 lib
+    PATHS
+    /opt
+    /opt/local
+    /opt/csw
+    /sw
+    /usr
+)
+
+find_path(HAVE_GRAS_H gras.h
+    HINTS
+    $ENV{GRAS_ROOT}
+       $ENV{SIMGRID_ROOT}
+    PATH_SUFFIXES include
+    PATHS
+    /opt
+    /opt/local
+    /opt/csw
+    /sw
+    /usr
+)
+
+find_program(HAVE_TESH
+       NAMES tesh
+       HINTS
+       $ENV{GRAS_ROOT}
+       $ENV{SIMGRID_ROOT}
+       PATH_SUFFIXES bin
+       PATHS
+       /opt
+       /opt/local
+       /opt/csw
+       /sw
+       /usr
+)
+
+find_program(HAVE_GRAS_STUB
+       NAMES gras_stub_generator
+       HINTS
+       $ENV{GRAS_ROOT}
+       $ENV{SIMGRID_ROOT}
+       PATH_SUFFIXES bin
+       PATHS
+       /opt
+       /opt/local
+       /opt/csw
+       /sw
+       /usr
+)
+
+message(STATUS "Looking for lib SimGrid")
+if(HAVE_SIMGRID_LIB)
+  message(STATUS "Looking for lib SimGrid - found")
+  if(CMAKE_CACHE_MAJOR_VERSION EQUAL "2" AND CMAKE_CACHE_MINOR_VERSION GREATER "7") #need cmake version 2.8
+         get_filename_component(simgrid_version ${HAVE_SIMGRID_LIB} REALPATH)
+         string(REPLACE "${HAVE_SIMGRID_LIB}." "" simgrid_version "${simgrid_version}")
+         string(REGEX MATCH "^[0-9]" SIMGRID_MAJOR_VERSION "${simgrid_version}")
+         string(REGEX MATCH "^[0-9].[0-9]" SIMGRID_MINOR_VERSION "${simgrid_version}")
+         string(REGEX MATCH "^[0-9].[0-9].[0-9]" SIMGRID_PATCH_VERSION "${simgrid_version}")
+         string(REGEX REPLACE "^${SIMGRID_MINOR_VERSION}." "" SIMGRID_PATCH_VERSION "${SIMGRID_PATCH_VERSION}") 
+         string(REGEX REPLACE "^${SIMGRID_MAJOR_VERSION}." "" SIMGRID_MINOR_VERSION "${SIMGRID_MINOR_VERSION}")
+         message(STATUS "Simgrid version : ${SIMGRID_MAJOR_VERSION}.${SIMGRID_MINOR_VERSION}")
+  endif(CMAKE_CACHE_MAJOR_VERSION EQUAL "2" AND CMAKE_CACHE_MINOR_VERSION GREATER "7")
+else(HAVE_SIMGRID_LIB)
+  message(STATUS "Looking for lib SimGrid - not found")
+endif(HAVE_SIMGRID_LIB)
+
+message(STATUS "Looking for gras.h")
+if(HAVE_GRAS_H)
+message(STATUS "Looking for gras.h - found")
+else(HAVE_GRAS_H)
+message(STATUS "Looking for gras.h - not found")
+endif(HAVE_GRAS_H)
+
+if(HAVE_TESH)
+message(STATUS "Found Tesh: ${HAVE_TESH}")
+endif(HAVE_TESH)
+
+if(HAVE_GRAS_STUB)
+message(STATUS "Found gras_stub_generator: ${HAVE_GRAS_STUB}")
+endif(HAVE_GRAS_STUB)
\ No newline at end of file
diff --git a/doc/HelloWorld/HelloWorld.c b/doc/HelloWorld/HelloWorld.c
new file mode 100644 (file)
index 0000000..796b67a
--- /dev/null
@@ -0,0 +1,7 @@
+#include "xbt/log.h"
+XBT_LOG_NEW_DEFAULT_CATEGORY(HelloWorld,
+                             "Messages specific for this Hello World example");
+void main()
+{
+       XBT_INFO("Hello World !!!");
+}