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