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