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)
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}
)
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
#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;
-
- /* 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, µ );
-
- if ( (major < MIN_MAJOR) ||
- (major == MIN_MAJOR && minor < MIN_MINOR) ||
- (major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
- return -1;
- }
-
- return 0;
- }
+ #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));
+
+ sscanf( xstr(SIMGEAR_VERSION), \"%d.%d.%d\", &major, &minor, µ );
+
+ if ( (major < MIN_MAJOR) ||
+ (major == MIN_MAJOR && minor < MIN_MINOR) ||
+ (major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
+ return -1;
+ }
+
+ 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)