1 cmake_minimum_required(VERSION 2.6)
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 )
12 ### DETECT AUTO. THE PROJECT_DIRECTORY
13 exec_program("${PWD_EXE}" ARGS "| ${SED_EXE} 's/\\/CPACK//g'" OUTPUT_VARIABLE PROJECT_DIRECTORY)
15 ### DETECT MANUAL. THE PROJECT_DIRECTORY
16 #SET(PROJECT_DIRECTORY "/home/navarrop/Bureau/simgrid-trunk")
18 ### ARGs use -D[var]=[ON/OFF] or [1/0] or [true/false](see after)
19 ### ex: cmake -Ddisable_java=ON -Ddisable_gtnets=ON ./
21 SET(disable_java OFF) #default value
22 SET(disable_threads ON)
23 SET(disable_gtnets ON)
24 SET(disable_context ON)
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)
33 message("\n________ARGS_________")
35 message("disable_java ${disable_java}")
37 message("disable_gtnets ${disable_gtnets}")
39 message("disable_threads ${disable_threads}")
41 set(gtnets_path "none" CACHE TYPE INTERNAL FORCE)
43 message(" -> gtnets_path \"${gtnets_path}\"")
45 message("disable_context ${disable_context}")
47 set(with_context "none" CACHE TYPE INTERNAL FORCE)
48 endif(disable_context)
49 message(" -> with_context \"${with_context}\"")
51 message("disable_lua ${disable_lua}")
53 message("_______END_ARGS_______")
54 #--------------------------------------------------------------------------------------------------
56 ### Set some variables for Cmake
57 SET(PROJECT_NAME "Simgrid")
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}")
69 ### Make the *.h files with *.h.in files
70 include(${PROJECT_DIRECTORY}/CPACK/CMakeCompleteInFiles.txt OPTIONAL NO_POLICY_SCOPE)
72 ### Define source packages for Libs
73 include(${PROJECT_DIRECTORY}/CPACK/CMakeDefinePackages.txt OPTIONAL NO_POLICY_SCOPE)
76 include(${PROJECT_DIRECTORY}/CPACK/CMakeTest.txt OPTIONAL NO_POLICY_SCOPE)
79 add_library(simgrid STATIC ${simgrid_sources})
80 add_library(gras STATIC ${gras_sources})
85 if(with_context MATCHES pthread)
86 SET(SIMGRID_DEP pthread)
88 endif(with_context MATCHES pthread)
90 if(with_context MATCHES windows)
91 elseif(with_context MATCHES windows)
93 endif(with_context MATCHES windows)
97 SET(SIMGRID_DEP "${SIMGRID_DEP}${ESPACE}dl lua5.1")
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)
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)
114 include(${PROJECT_DIRECTORY}/CPACK/CMakeDistrib.txt OPTIONAL NO_POLICY_SCOPE)