1
0
Fork 0

Merge branch 'next' of gitorious.org:fg/flightgear into next

This commit is contained in:
Dave Luff 2010-12-27 19:25:43 +00:00
commit f3cfddfd92
5 changed files with 93 additions and 70 deletions

View file

@ -59,7 +59,17 @@ else(EVENT_INPUT)
endif(EVENT_INPUT)
# check required dependencies
find_package(Boost REQUIRED)
if (MSVC)
# on MSVC, Olaf reports that the serialization library is required at
# link time. No one has you explained why, unfortunately.
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost REQUIRED COMPONENTS serialization)
else (MSVC)
find_package(Boost REQUIRED)
endif (MSVC)
find_package(ZLIB REQUIRED)
find_package(Threads REQUIRED)
find_package(OpenGL REQUIRED)
@ -130,8 +140,8 @@ if(WIN32)
set(NOMINMAX 1)
endif(WIN32)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} ${MSVC_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS} ${MSVC_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} ${MSVC_FLAGS} -D_REENTRANT")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS} ${MSVC_FLAGS} -D_REENTRANT")
include_directories(${OPENSCENEGRAPH_INCLUDE_DIRS}
${Boost_INCLUDE_DIRS}

View file

@ -62,59 +62,66 @@ FIND_LIBRARY(SIMGEAR_LIBRARIES
)
macro(find_sg_component comp libs)
set(compLib "sg${comp}")
string(TOUPPER "SIMGEAR_${comp}_LIBRARY" compLibName)
FIND_LIBRARY(${compLibName}
NAMES ${compLib}
HINTS $ENV{SIMGEAR_DIR}
PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
PATHS
/usr/local
/usr
/opt
)
set(componentLib ${${compLibName}})
if (NOT ${componentLib} STREQUAL "componentLib-NOTFOUND")
#message(STATUS "found ${componentLib}")
list(APPEND ${libs} ${componentLib})
endif()
set(compLib "sg${comp}")
string(TOUPPER "SIMGEAR_${comp}_LIBRARY" compLibName)
FIND_LIBRARY(${compLibName}
NAMES ${compLib}
HINTS $ENV{SIMGEAR_DIR}
PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
PATHS
/usr/local
/usr
/opt
)
set(componentLib ${${compLibName}})
if (NOT ${componentLib} STREQUAL "componentLib-NOTFOUND")
#message(STATUS "found ${componentLib}")
list(APPEND ${libs} ${componentLib})
endif()
endmacro()
if(${SIMGEAR_LIBRARIES} STREQUAL "SIMGEAR_LIBRARIES-NOTFOUND")
set(SIMGEAR_LIBRARIES "") # clear value
if(${SIMGEAR_LIBRARIES} STREQUAL "SIMGEAR_LIBRARIES-NOTFOUND")
set(SIMGEAR_LIBRARIES "") # clear value
if(NOT MSVC)
# Olaf indicates that linking the threads libs causes failures
# on MSVC builds
set(thread_lib threads)
endif(NOT MSVC)
# note the order here affects the order Simgear libraries are
# linked in, and hence ability to link when using a traditional
# linker such as GNU ld on Linux
set(comps
ephemeris
environment
nasal
sky
material tgdb
model
screen
bucket
bvh
util route
timing
threads
io
serial
sound
structure
props
xml
debug
misc
magvar
math)
foreach(component ${comps})
find_sg_component(${component} SIMGEAR_LIBRARIES)
endforeach()
set(comps
ephemeris
environment
nasal
sky
material tgdb
model
screen
bucket
bvh
util route
timing
${thread_lib}
io
serial
sound
structure
props
xml
debug
misc
magvar
math)
foreach(component ${comps})
find_sg_component(${component} SIMGEAR_LIBRARIES)
endforeach()
endif()
# now we've found SimGear, check its version
@ -132,30 +139,30 @@ check_cxx_source_runs(
#define xstr(s) str(s)
#define str(s) #s
#define MIN_MAJOR ${SimGear_FIND_VERSION_MAJOR}
#define MIN_MINOR ${SimGear_FIND_VERSION_MINOR}
#define MIN_MICRO ${SimGear_FIND_VERSION_PATCH}
int main() {
int major, minor, micro;
#define MIN_MAJOR ${SimGear_FIND_VERSION_MAJOR}
#define MIN_MINOR ${SimGear_FIND_VERSION_MINOR}
#define MIN_MICRO ${SimGear_FIND_VERSION_PATCH}
int main() {
int major, minor, micro;
/* printf(%d.%d.%d or greater, , MIN_MAJOR, MIN_MINOR, MIN_MICRO); */
printf(\"found %s ... \", xstr(SIMGEAR_VERSION));
/* printf(%d.%d.%d or greater, , MIN_MAJOR, MIN_MINOR, MIN_MICRO); */
printf(\"found %s ... \", xstr(SIMGEAR_VERSION));
sscanf( xstr(SIMGEAR_VERSION), \"%d.%d.%d\", &major, &minor, &micro );
sscanf( xstr(SIMGEAR_VERSION), \"%d.%d.%d\", &major, &minor, &micro );
if ( (major < MIN_MAJOR) ||
(major == MIN_MAJOR && minor < MIN_MINOR) ||
(major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
return -1;
}
if ( (major < MIN_MAJOR) ||
(major == MIN_MAJOR && minor < MIN_MINOR) ||
(major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
return -1;
}
return 0;
}
return 0;
}
"
SIMGEAR_VERSION_OK)
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SimGear DEFAULT_MSG
SIMGEAR_LIBRARIES SIMGEAR_INCLUDE_DIR SIMGEAR_VERSION_OK)
SIMGEAR_LIBRARIES SIMGEAR_INCLUDE_DIR SIMGEAR_VERSION_OK)

View file

@ -280,7 +280,7 @@ void MetarProperties::set_metar( const char * metar )
if( coverage != SGMetarCloud::COVERAGE_NIL ) {
// if there is a layer above the fog, limit the top to one foot below that layer's bottom
if( metarClouds[0].getCoverage() != SGMetarCloud::COVERAGE_CLEAR )
if( metarClouds.size() > 0 && metarClouds[0].getCoverage() != SGMetarCloud::COVERAGE_CLEAR )
thickness = metarClouds[0].getAltitude_ft() - LAYER_BOTTOM_STATION_OFFSET - 1;
SGPropertyNode_ptr layerNode = cloudsNode->getChild(LAYER, 0, true );

View file

@ -28,7 +28,12 @@ set(FGJS_SOURCES
add_executable(fgjs ${FGJS_SOURCES})
if(WIN32)
set(SOCKETS_LIBRARY wsock32.lib)
endif(WIN32)
target_link_libraries(fgjs
${SOCKETS_LIBRARY}
${SIMGEAR_LIBRARIES}
${PLIB_LIBRARIES}
${ZLIB_LIBRARY})

View file

@ -39,6 +39,7 @@ target_link_libraries(fgfs
${ALUT_LIBRARY}
${ZLIB_LIBRARIES}
${PLIB_LIBRARIES}
${RT_LIBRARY})
${RT_LIBRARY}
${Boost_SERIALIZATION_LIBRARY})
install(TARGETS fgfs RUNTIME DESTINATION bin)