Salome HOME
WIN32 compilation of the SMESH module:
[modules/smesh.git] / src / MEFISTO2 / CMakeLists.txt
index 7521891368623874023c49190577be7303993c83..cd8bd1f9cf0f91262d19556342e657c134991648 100644 (file)
@@ -48,16 +48,50 @@ SET(MEFISTO2D_HEADERS
 
 # --- sources ---
 
-# sources / static
-SET(MEFISTO2D_SOURCES
-  aptrte.cxx
-  trte.f
-)
+IF(${F2C_FOUND})
+ADD_DEFINITIONS()
+  SET(F2C_INPUT ${CMAKE_CURRENT_SOURCE_DIR}/trte.f)
+  SET(F2C_OUTPUT trte.c)
+
+  # additional include directories
+  INCLUDE_DIRECTORIES(${f2c_INCLUDE_DIRS})
+
+  # additional preprocessor / compiler flags
+  ADD_DEFINITIONS(-DF2C_BUILD)
+
+
+  # libraries to link to
+  SET(_link_LIBRARIES ${_link_LIBRARIES} ${f2c_LIBRARIES})
+
+  # generate C sources from Fortran
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${F2C_OUTPUT}
+    COMMAND ${f2c_GENERATOR} ${F2C_INPUT}
+    MAIN_DEPENDENCY ${F2C_INPUT}
+    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+  )  
+  # sources / static
+  SET(MEFISTO2D_SOURCES
+      aptrte.cxx
+      ${F2C_OUTPUT}
+  )
+ELSE(${F2C_FOUND})
+  # sources / static
+  SET(MEFISTO2D_SOURCES
+    aptrte.cxx
+    trte.f
+  )
+ENDIF(${F2C_FOUND})
 
 # --- rules ---
 
 ADD_LIBRARY(MEFISTO2D ${MEFISTO2D_SOURCES})
 TARGET_LINK_LIBRARIES(MEFISTO2D ${_link_LIBRARIES} )
-INSTALL(TARGETS MEFISTO2D EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
 
+#Ignore MSVCRT.lib on WIN32 in case using f2c code generator
+IF(WIN32 AND ${F2C_FOUND})
+  SET_TARGET_PROPERTIES(MEFISTO2D PROPERTIES LINK_FLAGS "/NODEFAULTLIB:MSVCRT")
+ENDIF(WIN32 AND ${F2C_FOUND})
+
+INSTALL(TARGETS MEFISTO2D EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
 INSTALL(FILES ${MEFISTO2D_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})