]> git.mxchange.org Git - flightgear.git/blob - src/Main/CMakeLists.txt
Fix for the fix: check for a viewer.
[flightgear.git] / src / Main / CMakeLists.txt
1
2 if (MSVC)
3         set( RESOURCE_FILE flightgear.rc )
4 endif (MSVC)
5
6 set(SOURCES
7         bootstrap.cxx
8         fg_commands.cxx
9         fg_init.cxx
10         fg_io.cxx
11         fg_os_common.cxx
12         fg_props.cxx
13         FGInterpolator.cxx
14         globals.cxx
15         locale.cxx
16         logger.cxx
17         main.cxx
18         options.cxx
19         util.cxx
20     positioninit.cxx
21     subsystemFactory.cxx
22     screensaver_control.cxx
23         ${RESOURCE_FILE}
24         )
25
26 set(HEADERS
27         fg_commands.hxx
28         fg_init.hxx
29         fg_io.hxx
30         fg_props.hxx
31         FGInterpolator.hxx
32         globals.hxx
33         locale.hxx
34         logger.hxx
35         main.hxx
36         options.hxx
37         util.hxx
38     positioninit.hxx
39     subsystemFactory.hxx
40     AircraftDirVisitorBase.hxx
41     screensaver_control.hxx
42         )
43
44 get_property(FG_SOURCES GLOBAL PROPERTY FG_SOURCES)
45 get_property(FG_HEADERS GLOBAL PROPERTY FG_HEADERS)
46
47 link_directories ( ${Boost_LIBRARY_DIRS} )
48
49 get_property(FG_GROUPS_C GLOBAL PROPERTY FG_GROUPS_C)
50 string(REPLACE "@" ";" groups ${FG_GROUPS_C} )
51 foreach(g ${groups})
52         string(REPLACE "#" ";" g2 ${g})
53         list(GET g2 0 name)
54         list(REMOVE_AT g2 0)
55         source_group("${name}\\Sources" FILES ${g2})
56 endforeach()
57
58 get_property(FG_GROUPS_H GLOBAL PROPERTY FG_GROUPS_H)
59 string(REPLACE "@" ";" groups ${FG_GROUPS_H} )
60 foreach(g ${groups})
61         string(REPLACE "#" ";" g2 ${g})
62         list(GET g2 0 name)
63         list(REMOVE_AT g2 0)
64         source_group("${name}\\Headers" FILES ${g2})
65 endforeach()
66
67 source_group("Main\\Headers" FILES ${HEADERS})
68 source_group("Main\\Sources" FILES ${SOURCES})
69
70 # important we pass WIN32 here so the console is optional. Other
71 # platforms ignore this option. If a console is needed we allocate
72 # it manually via AllocConsole()
73 add_executable(fgfs WIN32 ${SOURCES} ${FG_SOURCES} ${FG_HEADERS} ${HEADERS})
74
75 get_property(FG_LIBS GLOBAL PROPERTY FG_LIBS)
76 #message(STATUS "fg libs ${FG_LIBS}")
77 #message(STATUS "OSG libs ${OPENSCENEGRAPH_LIBRARIES}")
78 #message(STATUS "SG libs ${SIMGEAR_LIBRARIES}")
79
80 if(RTI_FOUND)
81         set(HLA_LIBRARIES ${RTI_LIBRARIES})
82 else()
83         set(HLA_LIBRARIES "")
84 endif()
85
86 if(ENABLE_JSBSIM)
87     # FIXME - remove once JSBSim doesn't expose private headers
88     include_directories(${PROJECT_SOURCE_DIR}/src/FDM/JSBSim)
89     
90     target_link_libraries(fgfs JSBSim)
91 endif()
92 if(ENABLE_IAX)
93     target_link_libraries(fgfs iaxclient_lib ${OPENAL_LIBRARY})
94 endif()
95 if(USE_DBUS)
96     target_link_libraries(fgfs ${DBUS_LIBRARIES})
97 endif()
98 if(FG_HAVE_GPERFTOOLS)
99     include_directories(${GooglePerfTools_INCLUDE_DIR})
100     target_link_libraries(fgfs ${GooglePerfTools_LIBRARIES})
101 endif()
102
103 target_link_libraries(fgfs
104         ${SQLITE3_LIBRARY}
105         ${SIMGEAR_LIBRARIES}
106         ${OPENSCENEGRAPH_LIBRARIES}
107         ${OPENGL_LIBRARIES}
108         ${PLIB_LIBRARIES}
109         ${JPEG_LIBRARY}
110         ${HLA_LIBRARIES}
111         ${EVENT_INPUT_LIBRARIES}
112         ${SIMGEAR_CORE_LIBRARY_DEPENDENCIES}
113         ${SIMGEAR_SCENE_LIBRARY_DEPENDENCIES}
114         ${PLATFORM_LIBS}
115 )
116
117 install(TARGETS fgfs RUNTIME DESTINATION bin)
118
119 if(ENABLE_METAR)
120     add_executable(metar metar_main.cxx)
121     target_link_libraries(metar
122         ${SIMGEAR_LIBRARIES}
123         ${SIMGEAR_CORE_LIBRARY_DEPENDENCIES}
124         ${SIMGEAR_SCENE_LIBRARY_DEPENDENCIES}
125         ${PLATFORM_LIBS}
126     )
127
128     install(TARGETS metar RUNTIME DESTINATION bin)
129 endif()