X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=CMakeLists.txt;h=33fb5464c351468c632d6bda29ef5b1623e41a0f;hb=c2546a431d27afb91f185c5bf25b282092fd40e1;hp=fe0af050040536ad4e72d5704ebb7d7726f6eb90;hpb=fe1222a90dd809560e787ce09391d5cf97bbe6fe;p=flightgear.git diff --git a/CMakeLists.txt b/CMakeLists.txt index fe0af0500..33fb5464c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,6 +69,39 @@ else() set(HUDSON_BUILD_ID "none") endif() +##################################################################################### +# Configure library search paths +##################################################################################### + +if(APPLE) + # Custom library directories for Mac, which should have precedence over any other + list(APPEND ADDITIONAL_LIBRARY_PATHS + ~/Library/Frameworks + /Library/Frameworks) +endif(APPLE) + +if(NOT "${CMAKE_LIBRARY_ARCHITECTURE}" STREQUAL "") + # Workaround for Ubuntu/Debian which introduced the "multiarch" library + # directory structure, which is unsupported by CMake < 2.8.10, so we need to + # add paths manually + # see http://www.cmake.org/Bug/view.php?id=12049 and + # http://www.cmake.org/Bug/view.php?id=12037 + list(APPEND ADDITIONAL_LIBRARY_PATHS + /usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE} + /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} + /lib/${CMAKE_LIBRARY_ARCHITECTURE}) + message(STATUS "additional library directories: ${ADDITIONAL_LIBRARY_PATHS}") +endif() + +if(NOT MSVC) + # TBD: are these really necessary? Aren't they considered by cmake automatically? + list(APPEND ADDITIONAL_LIBRARY_PATHS + /opt/local + /usr/local + /usr) +endif() +##################################################################################### + IF(APPLE) set(EVENT_INPUT_DEFAULT 1) @@ -105,12 +138,23 @@ option(ENABLE_JSBSIM "Set to ON to build FlightGear with JSBSim FDM (default option(EVENT_INPUT "Set to ON to build FlightGear with event-based Input support" ${EVENT_INPUT_DEFAULT}) option(ENABLE_LIBSVN "Set to ON to build FlightGear/terrasync with libsvnclient support (default)" ON) option(ENABLE_RTI "Set to ON to build FlightGear with RTI support" OFF) +option(ENABLE_PROFILE "Set to ON to build FlightGear with gperftools profiling support" OFF) option(JPEG_FACTORY "Set to ON to build FlightGear with JPEG-factory support" OFF) option(SYSTEM_SQLITE "Set to ON to build FlightGear with the system's SQLite3 library" OFF) # additional utilities option(ENABLE_FGADMIN "Set to ON to build the FGADMIN application (default)" ON) +option(ENABLE_FGELEV "Set to ON to build the fgelev application (default)" ON) option(WITH_FGPANEL "Set to ON to build the fgpanel application (default)" ON) +option(ENABLE_FGVIEWER "Set to ON to build the fgviewer application (default)" ON) +option(ENABLE_GPSSMOOTH "Set to ON to build the GPSsmooth application (default)" ON) +option(ENABLE_TERRASYNC "Set to ON to build the terrasync application (default)" ON) + +option(ENABLE_FGJS "Set to ON to build the fgjs application (default)" ON) +option(ENABLE_JS_DEMO "Set to ON to build the js_demo application (default)" ON) + +option(ENABLE_METAR "Set to ON to build the metar application (default)" ON) + option(ENABLE_TESTS "Set to ON to build test applications (default)" ON) if(LOGGING) @@ -196,8 +240,27 @@ list(APPEND SQLITE3_LIBRARY ${CMAKE_THREAD_LIBS_INIT}) find_package(PLIB REQUIRED puaux pu js fnt) -# FlightGear and SimGear versions need to match -find_package(SimGear ${FLIGHTGEAR_VERSION} REQUIRED) +if (EMBEDDED_SIMGEAR) + message(STATUS "Using embedded SimGear") + # create the same variables that FindSimGear would define + set(SIMGEAR_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/simgear) + set(SIMGEAR_CORE_LIBRARIES SimGearCore) + set(SIMGEAR_LIBRARIES SimGearScene) + + if (NOT SIMGEAR_SHARED) + set(SIMGEAR_CORE_LIBRARY_DEPENDENCIES + ${CMAKE_THREAD_LIBS_INIT} + ${ZLIB_LIBRARY} + ${LIBSVN_LIBRARIES} + ${WINMM_LIBRARY}) + + set(SIMGEAR_SCENE_LIBRARY_DEPENDENCIES + ${OPENAL_LIBRARY}) + endif() +else(EMBEDDED_SIMGEAR) + # FlightGear and SimGear versions need to match + find_package(SimGear ${FLIGHTGEAR_VERSION} REQUIRED) +endif (EMBEDDED_SIMGEAR) if (JPEG_FACTORY) # check simgear was built with JPEG-factory support @@ -223,14 +286,20 @@ check_include_file(unistd.h HAVE_UNISTD_H) check_include_file(sys/time.h HAVE_SYS_TIME_H) check_include_file(windows.h HAVE_WINDOWS_H) -# check optionally supported dependencies -find_package(GooglePerfTools) +if(ENABLE_PROFILE) + find_package(GooglePerfTools REQUIRED) + set(FG_HAVE_GPERFTOOLS 1) + message(STATUS "Built-in profiler using gperftools available") +endif() if(ENABLE_RTI) + message(STATUS "RTI: ENABLED") find_package(RTI) if(RTI_FOUND) set(FG_HAVE_HLA 1) endif(RTI_FOUND) +else() + message(STATUS "RTI: DISABLED") endif(ENABLE_RTI) if(CMAKE_COMPILER_IS_GNUCXX) @@ -251,7 +320,7 @@ if(WIN32) # SET(WARNING_FLAGS "${WARNING_FLAGS} /wd${warning}") # endforeach(warning) - set(MSVC_FLAGS "-DNOMINMAX -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D__CRT_NONSTDC_NO_WARNINGS") + set(MSVC_FLAGS "-DNOMINMAX -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D__CRT_NONSTDC_NO_WARNINGS -Dstrdup=_strdup") if (${MSVC_VERSION} GREATER 1599) set( MSVC_LD_FLAGS "/FORCE:MULTIPLE" ) endif (${MSVC_VERSION} GREATER 1599) @@ -298,6 +367,14 @@ configure_file ( "${PROJECT_BINARY_DIR}/src/Include/version.h" ) +if (EMBEDDED_SIMGEAR) + add_subdirectory(simgear) + # since we build without SimGear installed, we need to + # search this path directly to find the generated + # simgear_config.h + include_directories(${PROJECT_BINARY_DIR}/simgear) +endif(EMBEDDED_SIMGEAR) + add_subdirectory(src) add_subdirectory(utils) add_subdirectory(man)