Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SMPI finally works ;)
[simgrid.git] / buildtools / Cmake / MakeLibWin.cmake
1 ### Make Libs
2 #>gcc c:\simgrid-trunk\examples\msg\icomms\peer.c -static -Lc:\simgrid-trunk\lib -lsimgrid -Ic:\simgrid-trunk\include -lwsock32
3 add_library(simgrid SHARED ${simgrid_sources})
4 add_library(gras SHARED ${gras_sources})
5
6 set_target_properties(gras     PROPERTIES COMPILE_FLAGS "-D_XBT_DLL_EXPORT -DDLL_EXPORT" VERSION ${libgras_version}    OUTPUT_NAME "gras")
7 set_target_properties(simgrid  PROPERTIES COMPILE_FLAGS "-D_XBT_DLL_EXPORT -DDLL_EXPORT" VERSION ${libsimgrid_version} OUTPUT_NAME "simgrid")
8
9 if(enable_smpi)
10   add_library(smpi SHARED ${SMPI_SRC})
11   set_target_properties(smpi PROPERTIES COMPILE_FLAGS "-D_XBT_DLL_EXPORT -DDLL_EXPORT" VERSION ${libsmpi_version} OUTPUT_NAME "smpi")
12 endif(enable_smpi)
13
14 # libpthreadGC2.dll
15 if(ARCH_32_BITS)
16   find_library(PATH_PTHREAD_LIB
17     NAMES pthreadGC2.dll
18     HINTS
19     $ENV{PATH}
20     PATH_SUFFIXES bin/ c/bin
21     )
22 else()
23   find_library(PATH_PTHREAD_LIB
24     NAMES pthreadGC2-w64.dll
25     HINTS
26     $ENV{PATH}
27     PATH_SUFFIXES bin/ c/bin
28     )
29 endif()
30
31 set(GRAS_DEP "ws2_32 ${PATH_PTHREAD_LIB}")
32 set(SIMGRID_DEP "ws2_32 ${PATH_PCRE_LIB} ${PATH_PTHREAD_LIB}")
33 set(SMPI_DEP "${LIBRARY_OUTPUT_PATH}/libsimgrid.dll")
34
35 if(ARCH_32_BITS)
36   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32 -march=i486")
37 else()
38   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
39   #        message(FATAL_ERROR "Sorry, Simgrid fails with full 64bits for now! Please contact us.")
40 endif()
41
42 target_link_libraries(gras      ${GRAS_DEP})
43 target_link_libraries(simgrid   ${SIMGRID_DEP})
44 if(enable_smpi)
45 add_dependencies(smpi simgrid)
46 target_link_libraries(smpi      ${SMPI_DEP})
47 endif(enable_smpi)
48
49 find_path(PEXPORTS_PATH NAMES pexports.exe PATHS NO_DEFAULT_PATHS)
50 message(STATUS "pexports: ${PEXPORTS_PATH}")
51 if(PEXPORTS_PATH)
52   add_custom_command(TARGET simgrid POST_BUILD
53     COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/lib/libsimgrid.dll > ${CMAKE_BINARY_DIR}/lib/libsimgrid.def)
54 endif()
55
56 if(enable_smpi)
57   add_library(smpi SHARED ${SMPI_SRC})
58   set_target_properties(smpi PROPERTIES VERSION ${libsmpi_version} OUTPUT_NAME "smpi")
59
60   set(SMPI_LDEP "")
61   target_link_libraries(smpi    simgrid ${SMPI_LDEP})
62 endif()