Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
disable a MSVC warning
[simgrid.git] / tools / 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
4 add_library(simgrid SHARED ${simgrid_sources})
5
6 if(MSVC)
7   set_target_properties(simgrid  PROPERTIES 
8        COMPILE_FLAGS "/D_XBT_DLL_EXPORT /DDLL_EXPORT" 
9        VERSION ${libsimgrid_version} )
10 #       PREFIX "lib" SUFFIX ".dll"
11 #       IMPORT_PREFIX "lib"
12 #       IMPORT_SUFFIX ".dll")
13 #  ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/lib/Debug
14 else()
15   set_target_properties(simgrid  PROPERTIES 
16        COMPILE_FLAGS "-D_XBT_DLL_EXPORT -DDLL_EXPORT" 
17        LINK_FLAGS "-shared" 
18        VERSION ${libsimgrid_version} 
19        PREFIX "lib" SUFFIX ".dll" 
20        IMPORT_PREFIX "lib" IMPORT_SUFFIX ".dll")
21
22   set(SIMGRID_DEP "-lws2_32 -lm")
23
24   if (HAVE_PTHREAD)
25     set(SIMGRID_DEP "${SIMGRID_DEP} -lpthread")
26   endif()
27
28   if(ARCH_32_BITS)
29     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32 -march=i486 -D_I_X86_")
30     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -march=i486 -D_I_X86_")
31   else()
32     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64 -D_AMD64_")
33     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -D_AMD64_")
34     #        message(FATAL_ERROR "Sorry, Simgrid fails with full 64bits for now! Please contact us.")
35   endif()
36 endif()
37
38 target_link_libraries(simgrid   ${SIMGRID_DEP})
39
40 find_path(PEXPORTS_PATH NAMES pexports.exe PATHS NO_DEFAULT_PATHS)
41 message(STATUS "pexports: ${PEXPORTS_PATH}")
42 if(PEXPORTS_PATH)
43   add_custom_command(TARGET simgrid POST_BUILD
44     COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/lib/libsimgrid.dll > ${CMAKE_BINARY_DIR}/lib/libsimgrid.def)
45 endif()