Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make the gras.h with cmake.
[simgrid.git] / buildtools / CPACK / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.6)
2 find_program(SH_EXE NAMES sh)
3 find_program(SED_EXE NAMES sed)
4 find_program(PWD_EXE NAMES pwd)
5 find_program(UNAME NAMES uname)
6 find_program(HOSTNAME_CMD NAMES hostname)
7 find_path(GCC_PATH      NAMES gcc       PATHS NO_DEFAULT_PATHS  )
8 find_path(GCOV_PATH     NAMES gcov      PATHS NO_DEFAULT_PATHS  )
9 find_path(VALGRIND_PATH NAMES valgrind  PATHS NO_DEFAULT_PATHS  )
10
11 ### DETECT AUTO. THE PROJECT_DIRECTORY
12 exec_program("${PWD_EXE}" ARGS "| ${SED_EXE} 's/\\/CPACK//g'" OUTPUT_VARIABLE "PROJECT_DIRECTORY")
13
14 ### DETECT MANUAL. THE PROJECT_DIRECTORY
15 #SET(PROJECT_DIRECTORY "/home/navarrop/Bureau/simgrid-trunk")
16
17 ### Get the hostname of current machine :
18 exec_program(${HOSTNAME_CMD} OUTPUT_VARIABLE SITE)
19
20 ### Get the system information of current machine
21 exec_program("${UNAME}" OUTPUT_VARIABLE "SYSTEM")
22
23 ### ARGs use -D[var]=[ON/OFF] or [1/0] or [true/false](see after)
24 ### ex: cmake -Ddisable_java=ON -Ddisable_gtnets=ON ./
25
26 SET(disable_java OFF) #default value
27 SET(disable_threads ON)
28 SET(disable_gtnets ON)
29
30 option(disable_java "This variable set the java context.")
31 option(disable_gtnets "This variable set the gtnets context.")
32 option(disable_threads "This variable set the thread context.")
33
34 message("\n________ARGS_________")
35 message("disable_java ${disable_java}")
36 message("disable_gtnets ${disable_gtnets}")
37 if(NOT disable_gtnets)
38 message("gtnets_path \"${gtnets_path}\"")
39 endif(NOT disable_gtnets)
40 message("disable_threads ${disable_threads}")
41 message("_______END_ARGS_______")
42 #--------------------------------------------------------------------------------------------------
43
44 ### Set some variables for Cmake
45 SET(PROJECT_NAME "Simgrid")
46 SET(PROJECT_SOURCE_DIRECTORY "${PROJECT_DIRECTORY}/src")
47 set(EXECUTABLE_OUTPUT_PATH "${PROJECT_DIRECTORY}/bin")
48 set(LIBRARY_OUTPUT_PATH "${PROJECT_DIRECTORY}/lib")
49 set(INCLUDES "-I${PROJECT_DIRECTORY}/include -I${PROJECT_DIRECTORY}/src/include -I${PROJECT_DIRECTORY}/src")
50
51 add_definitions("${INCLUDES}")
52 add_definitions (-fprofile-arcs)
53 add_definitions (-ftest-coverage)
54 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
55 set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
56
57 ### Make the *.h files with *.h.in files
58 include(${PROJECT_DIRECTORY}/CPACK/CMakeCompleteInFiles.txt OPTIONAL NO_POLICY_SCOPE)
59
60 ### Define source packages for Libs 
61 include(${PROJECT_DIRECTORY}/CPACK/CMakeDefinePackages.txt OPTIONAL NO_POLICY_SCOPE)
62
63 ### Make Libs
64 add_library(simgrid SHARED ${simgrid_sources})
65 add_library(gras SHARED ${gras_sources})
66 ### Make EXEs
67 add_executable(masterslave_failure "${PROJECT_DIRECTORY}/examples/msg/masterslave/masterslave_failure.c")
68 add_executable(masterslave_forwarder "${PROJECT_DIRECTORY}/examples/msg/masterslave/masterslave_forwarder.c")
69 target_link_libraries(masterslave_forwarder simgrid m gcov)
70 target_link_libraries(masterslave_failure simgrid m gcov)
71
72
73 ### Make tests
74 include(${PROJECT_DIRECTORY}/CPACK/CMakeTest.txt OPTIONAL NO_POLICY_SCOPE)
75
76 ### Make the distrib
77 include(${PROJECT_DIRECTORY}/CPACK/CMakeDistrib.txt OPTIONAL NO_POLICY_SCOPE)
78
79