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