]> git.mxchange.org Git - simgear.git/blob - simgear/CMakeLists.txt
No need to link to ShivaVG anymore
[simgear.git] / simgear / CMakeLists.txt
1
2 file(WRITE ${PROJECT_BINARY_DIR}/simgear/version.h "#define SIMGEAR_VERSION ${SIMGEAR_VERSION}")
3
4 foreach( mylibfolder 
5         bucket
6         bvh
7         debug
8         ephemeris
9         io
10         magvar
11         math
12         misc
13         nasal
14         props
15         serial
16         structure
17         threads
18         timing
19         xml
20     )
21
22     add_subdirectory(${mylibfolder})
23
24 endforeach( mylibfolder )
25
26 if(NOT SIMGEAR_HEADLESS)
27     add_subdirectory(canvas)
28     add_subdirectory(environment)
29     add_subdirectory(screen)
30     add_subdirectory(scene)
31     add_subdirectory(sound)
32 endif(NOT SIMGEAR_HEADLESS)
33
34
35 if(ENABLE_RTI)
36     add_subdirectory(hla)
37 endif(ENABLE_RTI)
38
39
40 set(HEADERS compiler.h constants.h sg_inlines.h ${PROJECT_BINARY_DIR}/simgear/version.h)
41 install (FILES ${HEADERS}  DESTINATION include/simgear/)
42
43 get_property(coreSources GLOBAL PROPERTY CORE_SOURCES)
44 get_property(sceneSources GLOBAL PROPERTY SCENE_SOURCES)
45 get_property(publicHeaders GLOBAL PROPERTY PUBLIC_HEADERS)
46
47 if(LIBSVN_FOUND)
48         add_definitions(${APR_CFLAGS})
49         include_directories(${LIBSVN_INCLUDE_DIR})
50 endif()
51
52 if(SIMGEAR_SHARED)
53     message(STATUS "Library building mode: SHARED LIBRARIES")
54     add_library(SimGearCore SHARED ${coreSources})
55
56   # set_property(TARGET SimGearCore PROPERTY FRAMEWORK 1)
57   #  message(STATUS "public header: ${publicHeaders}")
58   #  set_property(TARGET SimGearCore PROPERTY PUBLIC_HEADER "${publicHeaders}")
59     set_property(TARGET SimGearCore PROPERTY LINKER_LANGUAGE CXX)
60
61     set_property(TARGET SimGearCore PROPERTY VERSION   ${SIMGEAR_VERSION})
62     set_property(TARGET SimGearCore PROPERTY SOVERSION ${SIMGEAR_SOVERSION})
63
64     target_link_libraries(SimGearCore ${ZLIB_LIBRARY} ${RT_LIBRARY} 
65         ${EXPAT_LIBRARIES}
66         ${CMAKE_THREAD_LIBS_INIT})
67
68     if(LIBSVN_FOUND)
69         target_link_libraries(SimGearCore ${LIBSVN_LIBRARIES})
70     endif(LIBSVN_FOUND)
71
72     if(NOT SIMGEAR_HEADLESS)
73         add_library(SimGearScene SHARED ${sceneSources})
74       # set_property(TARGET SimGearScene PROPERTY FRAMEWORK 1)
75       # set_property(TARGET SimGearScene PROPERTY PUBLIC_HEADER "${publicHeaders}")
76         set_property(TARGET SimGearScene PROPERTY LINKER_LANGUAGE CXX)
77         set_property(TARGET SimGearScene PROPERTY VERSION   ${SIMGEAR_VERSION})
78         set_property(TARGET SimGearScene PROPERTY SOVERSION ${SIMGEAR_SOVERSION})
79
80         target_link_libraries(SimGearScene
81             SimGearCore
82             ${ZLIB_LIBRARY}
83             ${OPENSCENEGRAPH_LIBRARIES}
84             ${OPENAL_LIBRARY}
85             ${OPENGL_LIBRARY}
86             ${JPEG_LIBRARY})
87     
88         install(TARGETS SimGearScene LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
89     endif()
90     
91     install(TARGETS SimGearCore LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
92 else()
93     message(STATUS "Library building mode: STATIC LIBRARIES")
94
95         get_property(FG_GROUPS_CORE_SOURCES_C GLOBAL PROPERTY FG_GROUPS_CORE_SOURCES_C)
96         string(REPLACE "@" ";" groups ${FG_GROUPS_CORE_SOURCES_C} )
97         foreach(g ${groups})
98                 string(REPLACE "#" ";" g2 ${g})
99                 list(GET g2 0 name)
100                 list(REMOVE_AT g2 0)
101                 source_group("${name}\\Sources" FILES ${g2})
102         endforeach()
103
104         get_property(FG_GROUPS_CORE_SOURCES_H GLOBAL PROPERTY FG_GROUPS_CORE_SOURCES_H)
105         string(REPLACE "@" ";" groups ${FG_GROUPS_CORE_SOURCES_H} )
106         foreach(g ${groups})
107                 string(REPLACE "#" ";" g2 ${g})
108                 list(GET g2 0 name)
109                 list(REMOVE_AT g2 0)
110                 source_group("${name}\\Headers" FILES ${g2})
111         endforeach()
112
113     add_library(SimGearCore STATIC ${coreSources})
114     install(TARGETS SimGearCore ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
115     
116     if(NOT SIMGEAR_HEADLESS)
117                 get_property(FG_GROUPS_SCENE_SOURCES_C GLOBAL PROPERTY FG_GROUPS_SCENE_SOURCES_C)
118                 string(REPLACE "@" ";" groups ${FG_GROUPS_SCENE_SOURCES_C} )
119                 foreach(g ${groups})
120                         string(REPLACE "#" ";" g2 ${g})
121                         list(GET g2 0 name)
122                         list(REMOVE_AT g2 0)
123                         source_group("${name}\\Sources" FILES ${g2})
124                 endforeach()
125
126                 get_property(FG_GROUPS_SCENE_SOURCES_H GLOBAL PROPERTY FG_GROUPS_SCENE_SOURCES_H)
127                 string(REPLACE "@" ";" groups ${FG_GROUPS_SCENE_SOURCES_H} )
128                 foreach(g ${groups})
129                         string(REPLACE "#" ";" g2 ${g})
130                         list(GET g2 0 name)
131                         list(REMOVE_AT g2 0)
132                         source_group("${name}\\Headers" FILES ${g2})
133                 endforeach()
134
135         add_library(SimGearScene STATIC ${sceneSources})
136         install(TARGETS SimGearScene ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
137     endif(NOT SIMGEAR_HEADLESS)
138 endif(SIMGEAR_SHARED)
139
140 if(ENABLE_RTI)
141     # Ugly first aid to make hla compile agian
142     set_property(SOURCE hla/RTI13InteractionClass.cxx hla/RTI13ObjectClass.cxx
143         hla/RTI13ObjectInstance.cxx hla/RTI13Federate.cxx
144         hla/RTI13FederateFactory.cxx
145         APPEND PROPERTY COMPILE_FLAGS "-I${RTI_INCLUDE_DIR}")
146 endif(ENABLE_RTI)