Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
344fa4c3ba7a96af66e7c8bc3810f904d8ad9efe
[simgrid.git] / buildtools / CPACK / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.6)
2
3 find_program(SH_EXE NAMES sh)
4 find_program(SED_EXE NAMES sed)
5 find_program(PWD_EXE NAMES pwd)
6 find_program(UNAME NAMES uname)
7 find_program(HOSTNAME_CMD NAMES hostname)
8 find_path(GCC_PATH NAMES gcc PATHS NO_DEFAULT_PATHS     )
9 find_path(GCOV_PATH NAMES gcov PATHS NO_DEFAULT_PATHS   )
10 find_path(VALGRIND_PATH NAMES valgrind  PATHS NO_DEFAULT_PATHS  )
11
12 ### DETECT AUTO. THE PROJECT_DIRECTORY
13 exec_program("${PWD_EXE}" ARGS "| ${SED_EXE} 's/\\/CPACK//g'" OUTPUT_VARIABLE PROJECT_DIRECTORY)
14
15 ### DETECT MANUAL. THE PROJECT_DIRECTORY
16 #SET(PROJECT_DIRECTORY "/home/navarrop/Bureau/simgrid-trunk")
17
18 ### ARGs use -D[var]=[ON/OFF] or [1/0] or [true/false](see after)
19 ### ex: cmake -Ddisable_java=ON -Ddisable_gtnets=ON ./
20
21 SET(disable_java OFF) #default value
22 SET(disable_threads ON)
23 SET(disable_gtnets ON)
24 SET(disable_context ON)
25 SET(disable_lua ON)
26
27 option(disable_java "This variable set the java context." OFF)
28 option(disable_gtnets "This variable set the gtnets context." ON)
29 option(disable_threads "This variable set the thread context." ON)
30 option(disable_context "This variable set the context." ON)
31 option(disable_lua "This variable set lua use." ON)
32
33 message("\n________ARGS_________")
34
35 message("disable_java ${disable_java}")
36
37 message("disable_gtnets ${disable_gtnets}")
38
39 message("disable_threads ${disable_threads}")
40 if(disable_gtnets)
41         set(gtnets_path "none" CACHE TYPE INTERNAL FORCE)       
42 endif(disable_gtnets)
43 message("  -> gtnets_path \"${gtnets_path}\"")
44
45 message("disable_context ${disable_context}")
46 if(disable_context)
47         set(with_context "none" CACHE TYPE INTERNAL FORCE)      
48 endif(disable_context)
49 message("  -> with_context \"${with_context}\"")
50
51 message("disable_lua ${disable_lua}")
52
53 message("_______END_ARGS_______")
54 #--------------------------------------------------------------------------------------------------
55
56 ### Set some variables for Cmake
57 SET(PROJECT_NAME "Simgrid")
58 SET(LANGUAGE "C")
59 SET(PROJECT_SOURCE_DIRECTORY "${PROJECT_DIRECTORY}/src")
60 set(EXECUTABLE_OUTPUT_PATH "${PROJECT_DIRECTORY}/bin")
61 set(LIBRARY_OUTPUT_PATH "${PROJECT_DIRECTORY}/lib")
62 set(INCLUDES "-I${PROJECT_DIRECTORY}/include -I${PROJECT_DIRECTORY}/src/include -I${PROJECT_DIRECTORY}/src")
63 set(CMAKE_SOURCE_FILES ${PROJECT_SOURCE_DIRECTORY})
64 set(CMAKE_CXX_FLAGS "-fprofile-arcs -ftest-coverage")
65 set(CMAKE_C_FLAGS "-fprofile-arcs -ftest-coverage")
66 add_definitions (-fprofile-arcs -ftest-coverage)
67 add_definitions("${INCLUDES}")
68
69 ### Make the *.h files with *.h.in files
70 include(${PROJECT_DIRECTORY}/CPACK/CMakeCompleteInFiles.txt OPTIONAL NO_POLICY_SCOPE)
71
72 ### Define source packages for Libs 
73 include(${PROJECT_DIRECTORY}/CPACK/CMakeDefinePackages.txt OPTIONAL NO_POLICY_SCOPE)
74
75 ### Make tests
76 include(${PROJECT_DIRECTORY}/CPACK/CMakeTest.txt OPTIONAL NO_POLICY_SCOPE)
77
78 ### Make Libs
79 add_library(simgrid STATIC ${simgrid_sources})
80 add_library(gras STATIC ${gras_sources})
81 set(GRAS_DEP "")
82 set(SIMGRID_DEP "")
83
84 if(pthread)
85         if(with_context MATCHES pthread)
86                 SET(SIMGRID_DEP pthread)
87                 SET(ESPACE " ")
88         endif(with_context MATCHES pthread)
89
90         if(with_context MATCHES windows)
91         elseif(with_context MATCHES windows)
92                 SET(GRAS_DEP pthread)   
93         endif(with_context MATCHES windows)
94 endif(pthread)
95
96 if(HAVE_LUA)
97         SET(SIMGRID_DEP "${SIMGRID_DEP}${ESPACE}dl lua5.1")
98 endif(HAVE_LUA)
99
100 message("SIMGRID_DEP \"${SIMGRID_DEP}\"")
101 message("GRAS_DEP \"${GRAS_DEP}\"")
102 target_link_libraries(simgrid ${SIMGRID_DEP} -fprofile-arcs)
103 target_link_libraries(gras ${GRAS_DEP} -fprofile-arcs)
104
105 ### Make EXEs
106 add_executable(masterslave_failure "${PROJECT_DIRECTORY}/examples/msg/masterslave/masterslave_failure.c")
107 add_executable(masterslave_forwarder "${PROJECT_DIRECTORY}/examples/msg/masterslave/masterslave_forwarder.c")
108 add_executable(Test "${PROJECT_DIRECTORY}/src/test.c")
109 target_link_libraries(masterslave_forwarder simgrid m -fprofile-arcs)
110 target_link_libraries(masterslave_failure simgrid m -fprofile-arcs)
111 target_link_libraries(Test -fprofile-arcs)
112
113 ### Make the distrib
114 include(${PROJECT_DIRECTORY}/CPACK/CMakeDistrib.txt OPTIONAL NO_POLICY_SCOPE)
115
116 INCLUDE(Dart)