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) endif(EVENT_INPUT)
# check required dependencies # 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(ZLIB REQUIRED)
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
find_package(OpenGL REQUIRED) find_package(OpenGL REQUIRED)
@ -130,8 +140,8 @@ if(WIN32)
set(NOMINMAX 1) set(NOMINMAX 1)
endif(WIN32) endif(WIN32)
set(CMAKE_C_FLAGS "${CMAKE_C_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}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS} ${MSVC_FLAGS} -D_REENTRANT")
include_directories(${OPENSCENEGRAPH_INCLUDE_DIRS} include_directories(${OPENSCENEGRAPH_INCLUDE_DIRS}
${Boost_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}

View file

@ -62,59 +62,66 @@ FIND_LIBRARY(SIMGEAR_LIBRARIES
) )
macro(find_sg_component comp libs) macro(find_sg_component comp libs)
set(compLib "sg${comp}") set(compLib "sg${comp}")
string(TOUPPER "SIMGEAR_${comp}_LIBRARY" compLibName) string(TOUPPER "SIMGEAR_${comp}_LIBRARY" compLibName)
FIND_LIBRARY(${compLibName} FIND_LIBRARY(${compLibName}
NAMES ${compLib} NAMES ${compLib}
HINTS $ENV{SIMGEAR_DIR} HINTS $ENV{SIMGEAR_DIR}
PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64 PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
PATHS PATHS
/usr/local /usr/local
/usr /usr
/opt /opt
) )
set(componentLib ${${compLibName}}) set(componentLib ${${compLibName}})
if (NOT ${componentLib} STREQUAL "componentLib-NOTFOUND") if (NOT ${componentLib} STREQUAL "componentLib-NOTFOUND")
#message(STATUS "found ${componentLib}") #message(STATUS "found ${componentLib}")
list(APPEND ${libs} ${componentLib}) list(APPEND ${libs} ${componentLib})
endif() endif()
endmacro() 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 # note the order here affects the order Simgear libraries are
# linked in, and hence ability to link when using a traditional # linked in, and hence ability to link when using a traditional
# linker such as GNU ld on Linux # linker such as GNU ld on Linux
set(comps set(comps
ephemeris ephemeris
environment environment
nasal nasal
sky sky
material tgdb material tgdb
model model
screen screen
bucket bucket
bvh bvh
util route util route
timing timing
threads ${thread_lib}
io io
serial serial
sound sound
structure structure
props props
xml xml
debug debug
misc misc
magvar magvar
math) math)
foreach(component ${comps}) foreach(component ${comps})
find_sg_component(${component} SIMGEAR_LIBRARIES) find_sg_component(${component} SIMGEAR_LIBRARIES)
endforeach() endforeach()
endif() endif()
# now we've found SimGear, check its version # now we've found SimGear, check its version
@ -132,30 +139,30 @@ check_cxx_source_runs(
#define xstr(s) str(s) #define xstr(s) str(s)
#define str(s) #s #define str(s) #s
#define MIN_MAJOR ${SimGear_FIND_VERSION_MAJOR} #define MIN_MAJOR ${SimGear_FIND_VERSION_MAJOR}
#define MIN_MINOR ${SimGear_FIND_VERSION_MINOR} #define MIN_MINOR ${SimGear_FIND_VERSION_MINOR}
#define MIN_MICRO ${SimGear_FIND_VERSION_PATCH} #define MIN_MICRO ${SimGear_FIND_VERSION_PATCH}
int main() { int main() {
int major, minor, micro; int major, minor, micro;
/* printf(%d.%d.%d or greater, , MIN_MAJOR, MIN_MINOR, MIN_MICRO); */ /* printf(%d.%d.%d or greater, , MIN_MAJOR, MIN_MINOR, MIN_MICRO); */
printf(\"found %s ... \", xstr(SIMGEAR_VERSION)); 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) || if ( (major < MIN_MAJOR) ||
(major == MIN_MAJOR && minor < MIN_MINOR) || (major == MIN_MAJOR && minor < MIN_MINOR) ||
(major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) { (major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
return -1; return -1;
} }
return 0; return 0;
} }
" "
SIMGEAR_VERSION_OK) SIMGEAR_VERSION_OK)
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SimGear DEFAULT_MSG 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( coverage != SGMetarCloud::COVERAGE_NIL ) {
// if there is a layer above the fog, limit the top to one foot below that layer's bottom // 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; thickness = metarClouds[0].getAltitude_ft() - LAYER_BOTTOM_STATION_OFFSET - 1;
SGPropertyNode_ptr layerNode = cloudsNode->getChild(LAYER, 0, true ); SGPropertyNode_ptr layerNode = cloudsNode->getChild(LAYER, 0, true );

View file

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

View file

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