include(CheckIncludeFile)
include(CheckIncludeFiles)
include(CheckLibraryExists)
+include(TestBigEndian)
-set(CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES} ${CGRAPH_PATH}")
+TEST_BIG_ENDIAN(BIGENDIAN)
# Checks for header libraries functions.
CHECK_INCLUDE_FILE("strings.h" HAVE_STRINGS_H)
CHECK_INCLUDE_FILE("string.h" HAVE_STRING_H)
CHECK_INCLUDE_FILE("ucontext.h" HAVE_UCONTEXT_H)
-CHECK_INCLUDE_FILE("graphviz/cgraph.h" HAVE_CGRAPH_H)
CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
CHECK_FUNCTION_EXISTS(usleep HAVE_USLEEP)
endif(JAVA_COMPILE AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2)
endif(enable_java)
-#--------------------------------------------------------------------------------------------------
-### Initialize of cgraph
-
-if(HAVE_CGRAPH_H)
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${CGRAPH_PATH} ")
-endif(HAVE_CGRAPH_H)
-
#--------------------------------------------------------------------------------------------------
### Initialize of CONTEXT GTNETS
if(NOT enable_gtnets OR enable_supernovae)
endif(COMPILE_GTNETS_VAR)
endif(NOT enable_gtnets OR enable_supernovae)
+#--------------------------------------------------------------------------------------------------
+### Initialize of cgraph
+
+find_library(HAVE_CGRAPH_LIB cgraph)
+find_file(HAVE_CGRAPH_H graphviz/cgraph.h)
+mark_as_advanced(HAVE_CGRAPH_LIB)
+mark_as_advanced(HAVE_CGRAPH_H)
+
+if(HAVE_CGRAPH_LIB AND HAVE_CGRAPH_H)
+ string(REGEX REPLACE "/libcgraph.*" "" lib_cgraph ${HAVE_CGRAPH_LIB})
+ string(REPLACE "/cgraph.h" "" file_cgraph_h ${HAVE_CGRAPH_H})
+
+ string(REGEX MATCH "-L${lib_cgraph} " operation "${CMAKE_EXE_LINKER_FLAGS}")
+ if(NOT operation)
+ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}-L${lib_cgraph} ")
+ endif(NOT operation)
+
+ string(REGEX MATCH "-I${file_cgraph_h} " operation "${CMAKE_C_FLAGS}")
+ if(NOT operation)
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${file_cgraph_h} ")
+ endif(NOT operation)
+
+endif(HAVE_CGRAPH_LIB AND HAVE_CGRAPH_H)
+
#--------------------------------------------------------------------------------------------------
### Initialize of CONTEXT THREADS
###################################
## SimGrid and GRAS specific checks
##
-include(TestBigEndian)
-TEST_BIG_ENDIAN(BIGENDIAN)
+
# Check architecture signature begin
try_run(RUN_GRAS_VAR COMPILE_GRAS_VAR
${PROJECT_DIRECTORY}
configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/gras_config.h.in" "${PROJECT_DIRECTORY}/src/gras_config.h" @ONLY IMMEDIATE)
configure_file("${PROJECT_DIRECTORY}/src/gras_config.h" "${PROJECT_DIRECTORY}/src/gras_config.h" @ONLY IMMEDIATE)
configure_file("${PROJECT_DIRECTORY}/include/simgrid_config.h.in" "${PROJECT_DIRECTORY}/include/simgrid_config.h" @ONLY IMMEDIATE)
-configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/tracing_config.h.in" "${PROJECT_DIRECTORY}/include/instr/tracing_config.h" @ONLY IMMEDIATE)
-configure_file("${PROJECT_DIRECTORY}/include/instr/tracing_config.h" "${PROJECT_DIRECTORY}/include/instr/tracing_config.h" @ONLY IMMEDIATE)
+#configure_file("${PROJECT_DIRECTORY}/buildtools/Cmake/tracing_config.h.in" "${PROJECT_DIRECTORY}/include/instr/tracing_config.h" @ONLY IMMEDIATE)
+#configure_file("${PROJECT_DIRECTORY}/include/instr/tracing_config.h" "${PROJECT_DIRECTORY}/include/instr/tracing_config.h" @ONLY IMMEDIATE)
set(top_srcdir "${PROJECT_DIRECTORY}")
set(srcdir "${PROJECT_DIRECTORY}/src")