X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7354dcbcc4ff6563bd0b247c5304dd3c24557186..8f7873c57495707ccbdad488eab21356bf5496d7:/buildtools/Cmake/MakeExeLib.cmake diff --git a/buildtools/Cmake/MakeExeLib.cmake b/buildtools/Cmake/MakeExeLib.cmake index 122efdea15..38c5134c58 100644 --- a/buildtools/Cmake/MakeExeLib.cmake +++ b/buildtools/Cmake/MakeExeLib.cmake @@ -1,8 +1,9 @@ ### Make Libs +include(FindSupernovae) -if(enable_supernovae) +if(enable_supernovae AND HAVE_SUPERNOVAE_TOOLS) include(${PROJECT_DIRECTORY}/buildtools/Cmake/Supernovae.cmake) -else(enable_supernovae) +else(enable_supernovae AND HAVE_SUPERNOVAE_TOOLS) add_library(simgrid SHARED ${simgrid_sources}) add_library(gras SHARED ${gras_sources}) if(enable_lib_static) @@ -14,7 +15,7 @@ else(enable_supernovae) add_library(smpi_static STATIC ${SMPI_SRC}) endif(enable_lib_static) endif(enable_smpi) -endif(enable_supernovae) +endif(enable_supernovae AND HAVE_SUPERNOVAE_TOOLS) set_target_properties(simgrid PROPERTIES VERSION ${libsimgrid_version}) set_target_properties(gras PROPERTIES VERSION ${libgras_version}) @@ -25,6 +26,9 @@ endif(enable_smpi) set(GRAS_DEP "-lm -lpthread") set(SIMGRID_DEP "-lm") set(SMPI_DEP "") +if(APPLE) + set(SMPI_DEP "-Wl,-U -Wl,_smpi_simulated_main") +endif(APPLE) if(HAVE_PCRE_LIB) SET(SIMGRID_DEP "${SIMGRID_DEP} -lpcre") @@ -33,12 +37,12 @@ endif(HAVE_PCRE_LIB) if(HAVE_RUBY) set(SIMGRID_DEP "${SIMGRID_DEP} -l${RUBY_LIBRARY_NAME} -module") ADD_CUSTOM_TARGET(link_simgrid_ruby ALL - DEPENDS simgrid ${PROJECT_DIRECTORY}/src/bindings/ruby/libsimgrid.so + DEPENDS simgrid ${PROJECT_DIRECTORY}/src/bindings/ruby/libsimgrid.${LIB_EXE} ) add_custom_command( - OUTPUT ${PROJECT_DIRECTORY}/src/bindings/ruby/libsimgrid.so - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/bindings/ruby/libsimgrid.so # if it exists, creating the link fails. So cleanup before hand - COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_BINARY_DIR}/lib/libsimgrid.${LIB_EXE} ${PROJECT_DIRECTORY}/src/bindings/ruby/libsimgrid.so + OUTPUT ${PROJECT_DIRECTORY}/src/bindings/ruby/libsimgrid.${LIB_EXE} + COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/bindings/ruby/libsimgrid.${LIB_EXE} # if it exists, creating the link fails. So cleanup before hand + COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_BINARY_DIR}/lib/libsimgrid.${LIB_EXE} ${PROJECT_DIRECTORY}/src/bindings/ruby/libsimgrid.${LIB_EXE} ) endif(HAVE_RUBY) @@ -61,27 +65,26 @@ if(HAVE_LUA) ADD_CUSTOM_TARGET(link_simgrid_lua ALL DEPENDS simgrid - ${PROJECT_DIRECTORY}/examples/lua/simgrid.so - ${PROJECT_DIRECTORY}/examples/msg/masterslave/simgrid.so - ${PROJECT_DIRECTORY}/examples/simdag/simgrid.so + ${PROJECT_DIRECTORY}/examples/lua/simgrid.${LIB_EXE} + ${PROJECT_DIRECTORY}/examples/msg/masterslave/simgrid.${LIB_EXE} + ${PROJECT_DIRECTORY}/examples/simdag/simgrid.${LIB_EXE} ) add_custom_command( - OUTPUT ${PROJECT_DIRECTORY}/examples/lua/simgrid.so - ${PROJECT_DIRECTORY}/examples/msg/masterslave/simgrid.so - ${PROJECT_DIRECTORY}/examples/simdag/simgrid.so - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/examples/lua/simgrid.so # if it exists, creating the link fails. So cleanup before hand - COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_BINARY_DIR}/lib/libsimgrid.${LIB_EXE} ${PROJECT_DIRECTORY}/examples/lua/simgrid.so #for test + OUTPUT ${PROJECT_DIRECTORY}/examples/lua/simgrid.${LIB_EXE} + ${PROJECT_DIRECTORY}/examples/msg/masterslave/simgrid.${LIB_EXE} + ${PROJECT_DIRECTORY}/examples/simdag/simgrid.${LIB_EXE} + COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/examples/lua/simgrid.${LIB_EXE} # if it exists, creating the link fails. So cleanup before hand + COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_BINARY_DIR}/lib/libsimgrid.${LIB_EXE} ${PROJECT_DIRECTORY}/examples/lua/simgrid.${LIB_EXE} #for test - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/examples/msg/masterslave/simgrid.so # if it exists, creating the link fails. So cleanup before hand - COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_BINARY_DIR}/lib/libsimgrid.${LIB_EXE} ${PROJECT_DIRECTORY}/examples/msg/masterslave/simgrid.so #for test + COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/examples/msg/masterslave/simgrid.${LIB_EXE} # if it exists, creating the link fails. So cleanup before hand + COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_BINARY_DIR}/lib/libsimgrid.${LIB_EXE} ${PROJECT_DIRECTORY}/examples/msg/masterslave/simgrid.${LIB_EXE} #for test - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/examples/simdag/simgrid.so # if it exists, creating the link fails. So cleanup before hand - COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_BINARY_DIR}/lib/libsimgrid.${LIB_EXE} ${PROJECT_DIRECTORY}/examples/simdag/simgrid.so #for test + COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/examples/simdag/simgrid.${LIB_EXE} # if it exists, creating the link fails. So cleanup before hand + COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_BINARY_DIR}/lib/libsimgrid.${LIB_EXE} ${PROJECT_DIRECTORY}/examples/simdag/simgrid.${LIB_EXE} #for test ) endif(HAVE_LUA) -if(enable_graphviz AND HAVE_CDT_LIB) -if(HAVE_AGRAPH_H OR HAVE_CGRAPH_H) +if(HAVE_GRAPHVIZ) if(HAVE_CGRAPH_LIB) SET(SIMGRID_DEP "${SIMGRID_DEP} -lcgraph") @@ -91,8 +94,7 @@ if(HAVE_AGRAPH_H OR HAVE_CGRAPH_H) endif(HAVE_AGRAPH_LIB) endif(HAVE_CGRAPH_LIB) -endif(HAVE_AGRAPH_H OR HAVE_CGRAPH_H) -endif(enable_graphviz AND HAVE_CDT_LIB) +endif(HAVE_GRAPHVIZ) if(HAVE_GTNETS) SET(SIMGRID_DEP "${SIMGRID_DEP} -lgtnets") @@ -195,9 +197,9 @@ add_subdirectory(${PROJECT_DIRECTORY}/examples/amok/saturate) add_subdirectory(${PROJECT_DIRECTORY}/examples/simdag) add_subdirectory(${PROJECT_DIRECTORY}/examples/simdag/dax) -if(enable_graphviz) -add_subdirectory(${PROJECT_DIRECTORY}/examples/simdag/dot) -endif(enable_graphviz) +if(HAVE_GRAPHVIZ) + add_subdirectory(${PROJECT_DIRECTORY}/examples/simdag/dot) +endif(HAVE_GRAPHVIZ) add_subdirectory(${PROJECT_DIRECTORY}/examples/simdag/metaxml) add_subdirectory(${PROJECT_DIRECTORY}/examples/simdag/properties) add_subdirectory(${PROJECT_DIRECTORY}/examples/simdag/scheduling)