X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/bd8b1f6f7a1fb9e79540cb9eb850c0dc6b99fe3e..51e5a45d4be05b7c01d28ce109505cd5e7444e46:/docs/source/Start_your_own_project.rst diff --git a/docs/source/Start_your_own_project.rst b/docs/source/Start_your_own_project.rst index 308d03936e..c339a00c32 100644 --- a/docs/source/Start_your_own_project.rst +++ b/docs/source/Start_your_own_project.rst @@ -1,4 +1,4 @@ -.. +.. _setup_your_own: Start your Own Project ====================== @@ -24,15 +24,16 @@ to the template itself. Building your project with CMake -------------------------------- -Here is a `CMakeLists.txt` that you can use as a starting point for -your project. It builds two simulators from a given set of source files. +Here is a `CMakeLists.txt` that you can use as a starting point for your S4U +project (see below for MPI projects). It builds two simulators from a given set +of source files. .. code-block:: cmake - cmake_minimum_required(VERSION 2.8.8) + cmake_minimum_required(VERSION 2.8.12) project(MyFirstSimulator) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") find_package(SimGrid REQUIRED) @@ -59,11 +60,13 @@ also refer to the file header for more information. MPI projects should include ``find_package (MPI)`` in CMakeLists.txt. Then, the variables ``MPI_C_COMPILER``, ``MPI_CXX_COMPILER``, and ``MPI_Fortran_COMPILER`` should -point to the full path of smpicc, smpicxx, and smpiff respectively. Example: +point to the full path of smpicc, smpicxx, and smpiff respectively. +It is however not advised to set these variables from the CMakeLists.txt file directly. +In addition, you may need to set ``SMPI_PRETEND_CC=1`` to please cmake when it tests the compiler. -.. code-block:: shell +.. code-block:: console - cmake -DMPI_C_COMPILER=/opt/simgrid/bin/smpicc -DMPI_CXX_COMPILER=/opt/simgrid/bin/smpicxx -DMPI_Fortran_COMPILER=/opt/simgrid/bin/smpiff . + $ SMPI_PRETEND_CC=1 cmake -DMPI_C_COMPILER=/opt/simgrid/bin/smpicc -DMPI_CXX_COMPILER=/opt/simgrid/bin/smpicxx -DMPI_Fortran_COMPILER=/opt/simgrid/bin/smpiff . Building your project with Makefile @@ -121,33 +124,12 @@ Develop in C++ with Eclipse If you wish to develop your plugin or modify SimGrid using Eclipse. You have to run cmake and import it as a Makefile project. -Next, you have to activate C++14 in your build settings, add -std=c++14 +Next, you have to activate C++17 in your build settings, add -std=c++17 in the CDT GCC Built-in compiler settings. .. image:: /img/eclipseScreenShot.png :align: center - -Building the Java examples in Eclipse -------------------------------------- - -If you want to build our Java examples in Eclipse, get the whole -source code and open the archive on your disk. In Eclipse, select -the menu "File / Import", and then in the wizard "General / Existing -Project into Workspace". On the next page, select the directory -"examples/deprecated/java" that you can find in the SimGrid source tree as a root -directory and finish the creation. - -The file ``simgrid.jar`` must be in the root directory of the SimGrid -tree. That's where it is built by default, but if you don't want to -compile it yourself, just grab that file from the SimGrid website and -copy it in here. - -Please note that once you better understand SimGrid, you should not -modify the examples directly but instead create your own project in -eclipse. This will make it easier to upgrade to another version of -SimGrid. - .. _install_yours_troubleshooting: Troubleshooting your Project Setup @@ -158,9 +140,9 @@ Library not found When the library cannot be found, you will get such an error message similar to: -.. code-block:: shell +.. code-block:: console - ./masterworker1: error while loading shared libraries: libsimgrid.so: cannot open shared object file: No such file or directory + $ ./masterworker1: error while loading shared libraries: libsimgrid.so: cannot open shared object file: No such file or directory To fix this, add the path to where you installed the library to the ``LD_LIBRARY_PATH`` variable. You can add the following line to your @@ -175,10 +157,9 @@ computer. Many undefined references ^^^^^^^^^^^^^^^^^^^^^^^^^ -.. code-block:: shell +.. code-block:: console masterworker.c:209: undefined reference to `sg_version_check' - masterworker.c:209: undefined reference to `MSG_init_nocheck' (and many other undefined references) This happens when the linker tries to use the wrong library. Use