Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
pthread is not necessarily defined on windows
[simgrid.git] / buildtools / Cmake / MakeLibWin.cmake
index 733f6ca..c62d9bb 100644 (file)
@@ -1,30 +1,34 @@
-### Make Libs\r
-#>gcc c:\simgrid-trunk\examples\msg\icomms\peer.c -static -Lc:\simgrid-trunk\lib -lsimgrid -Ic:\simgrid-trunk\include -lwsock32        \r
-add_library(simgrid STATIC ${simgrid_sources})\r
-add_library(gras STATIC ${gras_sources})\r
-\r
-if(MSVC)\r
-    set_target_properties(gras     PROPERTIES COMPILE_FLAGS "/D _XBT_DLL_STATIC"\r
-                                                     OUTPUT_NAME   "gras")\r
-    set_target_properties(simgrid  PROPERTIES COMPILE_FLAGS "/D _XBT_DLL_STATIC"\r
-                                                     OUTPUT_NAME   "simgrid")\r
-else(MSVC)\r
-    if(CMAKE_COMPILER_IS_GNUCC)\r
-        set_target_properties(gras     PROPERTIES COMPILE_FLAGS "-D_XBT_DLL_STATIC"\r
-                                                         OUTPUT_NAME   "gras")\r
-        set_target_properties(simgrid  PROPERTIES COMPILE_FLAGS "-D_XBT_DLL_STATIC"\r
-                                                         OUTPUT_NAME   "simgrid")\r
-    else(CMAKE_COMPILER_IS_GNUCC)\r
-        message(FATAL_ERROR "Compilateur non connu!!!")\r
-    endif(CMAKE_COMPILER_IS_GNUCC)\r
-endif(MSVC)\r
-\r
-set(GRAS_DEP "wsock32")\r
-set(SIMGRID_DEP "wsock32")\r
-\r
-if(HAVE_PCRE_LIB)\r
-       SET(SIMGRID_DEP "${SIMGRID_DEP} -lpcre")\r
-endif(HAVE_PCRE_LIB)\r
-\r
-target_link_libraries(simgrid  ${SIMGRID_DEP})\r
-target_link_libraries(gras     ${GRAS_DEP})\r
+### Make Libs
+#>gcc c:\simgrid-trunk\examples\msg\icomms\peer.c -static -Lc:\simgrid-trunk\lib -lsimgrid -Ic:\simgrid-trunk\include -lwsock32
+
+if(enable_java)
+  include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MakeJava.cmake)
+endif()
+
+add_library(simgrid SHARED ${simgrid_sources})
+
+set_target_properties(simgrid  PROPERTIES COMPILE_FLAGS "-D_XBT_DLL_EXPORT -DDLL_EXPORT" LINK_FLAGS "-shared" VERSION ${libsimgrid_version} PREFIX "lib" SUFFIX ".dll" IMPORT_PREFIX "lib" IMPORT_SUFFIX ".dll")
+
+set(SIMGRID_DEP "-lws2_32 -lm")
+
+if (HAVE_PTHREAD)
+  set(SIMGRID_DEP "${SIMGRID_DEP} -lpthread")
+endif()
+
+if(ARCH_32_BITS)
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32 -march=i486 -D_I_X86_")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -march=i486 -D_I_X86_")
+else()
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64 -D_AMD64_")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -D_AMD64_")
+  #        message(FATAL_ERROR "Sorry, Simgrid fails with full 64bits for now! Please contact us.")
+endif()
+
+target_link_libraries(simgrid  ${SIMGRID_DEP})
+
+find_path(PEXPORTS_PATH NAMES pexports.exe PATHS NO_DEFAULT_PATHS)
+message(STATUS "pexports: ${PEXPORTS_PATH}")
+if(PEXPORTS_PATH)
+  add_custom_command(TARGET simgrid POST_BUILD
+    COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/lib/libsimgrid.dll > ${CMAKE_BINARY_DIR}/lib/libsimgrid.def)
+endif()