Salome HOME
Fix compilation on WIN64 in Release mode
[modules/smesh.git] / src / MEFISTO2 / CMakeLists.txt
1 # Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 # --- options ---
21 # additional include directories
22 INCLUDE_DIRECTORIES(
23   ${KERNEL_INCLUDE_DIRS}
24   ${CAS_INCLUDE_DIRS}
25   ${HDF5_INCLUDE_DIRS}
26   ${PLATFORM_INCLUDES}
27 )
28
29 # additional preprocessor / compiler flags
30 ADD_DEFINITIONS(
31   ${CAS_DEFINITIONS}
32 )
33
34 # libraries to link to
35 SET(_link_LIBRARIES
36   ${CAS_TKernel}
37   ${CAS_TKMath}
38   ${KERNEL_SALOMELocalTrace}
39 )
40
41 # --- headers ---
42
43 # header files / no moc processing
44 SET(MEFISTO2D_HEADERS
45   aptrte.h 
46   Rn.h
47 )
48
49 # --- sources ---
50
51 IF(${F2C_FOUND})
52 ADD_DEFINITIONS()
53   SET(F2C_INPUT ${CMAKE_CURRENT_SOURCE_DIR}/trte.f)
54   SET(F2C_OUTPUT trte.c)
55
56   # additional include directories
57   INCLUDE_DIRECTORIES(${f2c_INCLUDE_DIRS})
58
59   # additional preprocessor / compiler flags
60   ADD_DEFINITIONS(-DF2C_BUILD)
61
62
63   # libraries to link to
64   SET(_link_LIBRARIES ${_link_LIBRARIES} ${f2c_LIBRARIES})
65
66   # generate C sources from Fortran
67   ADD_CUSTOM_COMMAND(
68     OUTPUT ${F2C_OUTPUT}
69     COMMAND ${f2c_GENERATOR} ${F2C_INPUT}
70     MAIN_DEPENDENCY ${F2C_INPUT}
71     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
72   )  
73   # sources / static
74   SET(MEFISTO2D_SOURCES
75       aptrte.cxx
76       ${F2C_OUTPUT}
77   )
78 ELSE(${F2C_FOUND})
79   # sources / static
80   SET(MEFISTO2D_SOURCES
81     aptrte.cxx
82     trte.f
83   )
84 ENDIF(${F2C_FOUND})
85
86 # --- rules ---
87
88 ADD_LIBRARY(MEFISTO2D ${MEFISTO2D_SOURCES})
89 TARGET_LINK_LIBRARIES(MEFISTO2D ${_link_LIBRARIES} )
90
91 #Ignore MSVCRT.lib on WINDOWS in case using f2c code generator
92 IF(WIN32)
93   IF(CMAKE_BUILD_TYPE STREQUAL Debug)
94     IF(${F2C_FOUND})
95       SET_TARGET_PROPERTIES(MEFISTO2D PROPERTIES LINK_FLAGS "/NODEFAULTLIB:MSVCRT")
96     ENDIF(${F2C_FOUND})
97   ENDIF()
98 ENDIF(WIN32)
99
100 INSTALL(TARGETS MEFISTO2D EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
101 INSTALL(FILES ${MEFISTO2D_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})