Skip to content
Snippets Groups Projects
Commit a350eb89 authored by James Goppert's avatar James Goppert
Browse files

Working on cmake.

parent 0dab6330
No related branches found
No related tags found
No related merge requests found
Showing
with 1695 additions and 0 deletions
project (arkscicos)
# Requried cmake version
cmake_minimum_required (VERSION 2.8.2)
# global needed variables
set(APPLICATION_NAME ${PROJECT_NAME})
# set these for release
set(APPLICATION_VERSION_MAJOR "1")
set(APPLICATION_VERSION_MINOR "0")
set(APPLICATION_VERSION_PATCH "0")
set(MAVLINK_VERSION "master")
set(APPLICATION_VERSION "${APPLICATION_VERSION_MAJOR}.${APPLICATION_VERSION_MINOR}.${APPLICATION_VERSION_PATCH}")
set(LIBRARY_VERSION ${APPLICATION_VERSION})
# SOVERSION scheme: CURRENT.AGE.REVISION
# If there was an incompatible interface change:
# Increment CURRENT. Set AGE and REVISION to 0
# If there was a compatible interface change:
# Increment AGE. Set REVISION to 0
# If the source code was changed, but there were no interface changes:
# Increment REVISION.
set(LIBRARY_SOVERSION "0.0.0")
# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
set(CMAKE_MODULE_PATH
${CMAKE_SOURCE_DIR}/cmake
${CMAKE_SOURCE_DIR}/cmake/arkcmake
)
# add definitions
include(DefineCMakeDefaults)
include(DefinePlatformDefaults)
include(DefineCompilerFlags)
include(DefineInstallationPaths)
# cpack
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "arkTools scicoslab toolbox")
set(CPACK_PACKAGE_VENDOR "arkTools")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "james.goppert@gmail.com")
set(CPACK_PACKAGE_CONTACT "james.goppert@gmail.com")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.txt")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING.txt")
set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/README.txt")
set(CPACK_PACKAGE_VERSION_MAJOR "${APPLICATION_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${APPLICATION_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${APPLICATION_VERSION_PATCH}")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
set(CPACK_SET_DESTDIR TRUE)
set(CPACK_SOURCE_IGNORE_FILES ${CPACK_SOURCE_IGNORE_FILES}
/.git/;/build/;~$;.*\\\\.bin$;.*\\\\.swp$)
set(CPACK_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# find libraries with cmake modules
find_package(SCICOSLAB REQUIRED)
find_package(OpenSceneGraph 2.8.0 COMPONENTS osgGA osgDB osgUtil osgViewer)
find_package(JSBSIM)
find_package(MAVLINK)
find_package(Boost 1.42 REQUIRED COMPONENTS thread-mt system-mt)
if(WIN32)
set(CPACK_GENERATOR "NSIS")
set(CPACK_SOURCE_GENERATOR "ZIP")
elseif(APPLE)
set(CPACK_GENERATOR "PackageMaker")
set(CPACK_SOURCE_GENERATOR "TGZ")
elseif(UNIX)
set(CPACK_GENERATOR "DEB")
set(CPACK_SOURCE_GENERATOR "TGZ")
else()
message(FATAL_ERROR "unknown operating system")
endif()
#if(WIN32 and not UNIX)
## There is a bug in NSI that does not handle full unix paths properly. Make
## sure there is at least one set of four (4) backlasshes.
#set(CPACK_PACKAGE_ICON "${CMake_SOURCE_DIR}/Utilities/Release\\\\InstallIcon.bmp")
#set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\MyExecutable.exe")
#set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} ${PROJECT_NAME}")
#set(CPACK_NSIS_HELP_LINK "http:\\\\\\\\www.my-project-home-page.org")
#set(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.my-personal-home-page.com")
#set(CPACK_NSIS_CONTACT "me@my-personal-home-page.com")
#set(CPACK_NSIS_MODIFY_PATH ON)
#else(WIN32 and not UNIX)
#set(CPACK_STRIP_FILES "bin/MyExecutable")
#set(CPACK_SOURCE_STRIP_FILES "")
#endif(WIN32 and not UNIX)
#set(CPACK_PACKAGE_EXECUTABLES "MyExecutable" "My Executable")
include(CPack)
# disallow in-source build
include(MacroEnsureOutOfSourceBuild)
macro_ensure_out_of_source_build("${PROJECT_NAME} requires an out of source build.
Please create a separate build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there.")
# add macros
include(MacroAddPlugin)
include(MacroCopyFile)
include(MacroSetDefault)
include(language_support_v2)
include(MacroAddLinkFlags)
include(ExternalProject)
include(CTest)
# settings
option(DEV_MODE "Setup paths for developer testing." OFF)
option(BUILD_SHARED_LIBS "Build shared libraries instead of static." OFF)
# built variables
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
# set build type
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
FORCE)
endif(NOT CMAKE_BUILD_TYPE)
# enable languages
enable_language(C)
enable_language(CXX)
if(NOT APPLE)
enable_language(Fortran)
endif()
# add make dist target
add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
# find libraries with cmake modules
find_package(SCICOSLAB REQUIRED)
find_package(OpenSceneGraph 2.8.0 COMPONENTS osgGA osgDB osgUtil osgViewer)
find_package(SIMGEAR)
find_package(PLIB)
find_package(LAPACK)
find_package(ARKOSG)
find_package(ARKCOMM)
find_package(ARKMATH)
find_package(JSBSIM)
find_package(MAVLINK)
find_package(Boost 1.42 REQUIRED COMPONENTS thread-mt system-mt)
# external projects
set(EP_BASE_DIR "${CMAKE_BINARY_DIR}/CMakeExternals")
set_property(DIRECTORY PROPERTY EP_BASE ${EP_BASE_DIR})
set(EP_INSTALL_ROOT ${EP_BASE_DIR}/InstallRoot${CMAKE_INSTALL_PREFIX})
# install/developer mode
if(DEV_MODE)
message(STATUS "configuring for in source build")
set(DATADIR ${PROJECT_SOURCE_DIR}/data)
set(LIBDIR ${CMAKE_BINARY_DIR}/bin)
set(BINDIR ${CMAKE_BINARY_DIR}/bin)
set(EP_DATA_ROOT ${EP_INSTALL_ROOT}/share)
else()
message(STATUS "configuring for install build")
set(DATADIR ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/data)
set(LIBDIR ${CMAKE_INSTALL_PREFIX}/lib)
set(BINDIR ${CMAKE_INSTALL_PREFIX}/bin)
set(EP_DATA_ROOT ${CMAKE_INSTALL_PREFIX}/share)
endif()
# static lib prefix
if(WIN32)
set(STATIC_LIB_PREFIX "")
elseif(APPLE)
set(STATIC_LIB_PREFIX "lib")
elseif(UNIX)
set(STATIC_LIB_PREFIX "lib")
else()
message(FATAL_ERROR "unknown operating system")
endif()
if( NOT MAVLINK_FOUND)
ExternalProject_Add(mavlink
GIT_REPOSITORY "git://github.com/pixhawk/mavlink.git"
GIT_TAG ${MAVLINK_VERSION}
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
INSTALL_DIR ${EP_INSTALL_ROOT}
UPDATE_COMMAND ""
BUILD_IN_SOURCE 1
)
set(MAVLINK_FOUND TRUE)
set(MAVLINK_INCLUDE_DIRS ${EP_BASE_DIR}/Source/mavlink/include)
endif()
set(ARKSCICOS_LIBRARIES "")
# install data files
#install(DIRECTORY "${PROJECT_SOURCE_DIR}/data" DESTINATION share/${PROJECT_NAME} PATTERN "*.git*" EXCLUDE)
install(DIRECTORY "${PROJECT_SOURCE_DIR}/arkscicos-toolbox"
DESTINATION ${SCICOSLAB_CONTRIB_DIR}
PATTERN "*.git*" EXCLUDE)
# install required dependencies from external projects
install(DIRECTORY "${EP_BASE_DIR}/InstallRoot${CMAKE_INSTALL_PREFIX}/include" DESTINATION ${CMAKE_INSTALL_PREFIX})
install(DIRECTORY "${EP_BASE_DIR}/InstallRoot${CMAKE_INSTALL_PREFIX}/lib" DESTINATION ${CMAKE_INSTALL_PREFIX})
install(DIRECTORY "${EP_BASE_DIR}/InstallRoot${CMAKE_INSTALL_PREFIX}/share" DESTINATION ${CMAKE_INSTALL_PREFIX})
# pkgconfig
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc)
install(FILES
${PROJECT_BINARY_DIR}/${PROJECT_NAME}.pc
DESTINATION lib/pkgconfig
)
include_directories(src)
# math library
set(math_src
src/math/FGColumnVector3.cpp
src/math/FGCondition.cpp
src/math/FGFunction.cpp
src/math/FGLocation.cpp
src/math/FGMatrix33.cpp
src/math/FGModelFunctions.cpp
src/math/FGNelderMead.cpp
src/math/FGPropertyValue.cpp
src/math/FGQuaternion.cpp
src/math/FGRealValue.cpp
src/math/FGRungeKutta.cpp
src/math/FGStateSpace.cpp
src/math/FGTable.cpp
)
set(math_hdr
src/math/FGColumnVector3.h
src/math/FGCondition.h
src/math/FGFunction.h
src/math/FGLocation.h
src/math/FGMatrix33.h
src/math/FGModelFunctions.h
src/math/FGNelderMead.h
src/math/FGParameter.h
src/math/FGPropertyValue.h
src/math/FGQuaternion.h
src/math/FGRealValue.h
src/math/FGRungeKutta.h
src/math/FGStateSpace.h
src/math/FGTable.h
)
add_library(math ${math_src})
# intialization library
set(initilization_src
src/initialization/FGInitialCondition.cpp
src/initialization/FGSimplexTrim.cpp
#src/initialization/FGTrimAnalysisControl.cpp
#src/initialization/FGTrimAnalysis.cpp
src/initialization/FGTrimAxis.cpp
src/initialization/FGTrim.cpp
src/initialization/FGTrimmer.cpp
)
set(initialization_hdr
src/initialization/FGInitialCondition.h
src/initialization/FGSimplexTrim.h
src/initialization/FGTrimAnalysisControl.h
src/initialization/FGTrimAnalysis.h
src/initialization/FGTrimAxis.h
src/initialization/FGTrim.h
src/initialization/FGTrimmer.h
)
add_library(initialization ${initilization_src})
# input_output library
set(input_output_src
src/input_output/FGfdmSocket.cpp
src/input_output/FGGroundCallback.cpp
src/input_output/FGPropertyManager.cpp
src/input_output/FGScript.cpp
src/input_output/FGXMLElement.cpp
src/input_output/FGXMLParse.cpp
src/input_output/flightGearIO.cpp
)
set(input_output_hdr
src/input_output/FGfdmSocket.h
src/input_output/FGGroundCallback.h
src/input_output/FGPropertyManager.h
src/input_output/FGScript.h
src/input_output/FGXMLElement.h
src/input_output/FGXMLFileRead.h
src/input_output/FGXMLParse.h
src/input_output/flightGearIO.h
src/input_output/string_utilities.h
)
add_library(input_output ${input_output_src})
# models
set(models_src
src/models/FGAerodynamics.cpp
src/models/FGAircraft.cpp
src/models/FGAtmosphere.cpp
src/models/FGAuxiliary.cpp
src/models/FGBuoyantForces.cpp
src/models/FGExternalForce.cpp
src/models/FGExternalReactions.cpp
src/models/FGFCS.cpp
src/models/FGGasCell.cpp
src/models/FGGroundReactions.cpp
src/models/FGInertial.cpp
src/models/FGInput.cpp
src/models/FGLGear.cpp
src/models/FGMassBalance.cpp
src/models/FGModel.cpp
src/models/FGOutput.cpp
src/models/FGPropagate.cpp
src/models/FGPropulsion.cpp
)
set(models_hdr
src/models/FGAerodynamics.h
src/models/FGAircraft.h
src/models/FGAtmosphere.h
src/models/FGAuxiliary.h
src/models/FGBuoyantForces.h
src/models/FGExternalForce.h
src/models/FGExternalReactions.h
src/models/FGFCS.h
src/models/FGGasCell.h
src/models/FGGroundReactions.h
src/models/FGInertial.h
src/models/FGInput.h
src/models/FGLGear.h
src/models/FGMassBalance.h
src/models/FGModel.h
src/models/FGOutput.h
src/models/FGPropagate.h
src/models/FGPropulsion.h
)
add_library(models ${models_src})
# utilities library
set(utilities_src
src/utilities/datafile.cpp
src/utilities/main.cpp
src/utilities/plotXMLVisitor.cpp
src/utilities/prep_plot.cpp
src/utilities/XMLParseTest.cpp
)
set(utilities_hdr
src/utilities/datafile.h
src/utilities/plotXMLVisitor.h
)
add_library(utilities ${utilities_src})
# simgear library
set(simgear_src
)
set(simgear_hdr
src/simgear/compiler.h
)
#add_library(simgear ${simgear_src})
# vim:sw=4:ts=4:expandtab
File moved
File moved
*.swp
*.pyc
.DS_Store
arkcmake
This diff is collapsed.
# Always include srcdir and builddir in include path
# This saves typing ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY} in
# about every subdir
# since cmake 2.4.0
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Put the include dirs which are in the source or build tree
# before all other include dirs, so the headers in the sources
# are prefered over the already installed ones
# since cmake 2.4.1
set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
# Use colored output
# since cmake 2.4.0
set(CMAKE_COLOR_MAKEFILE ON)
# Define the generic version of the libraries here
set(GENERIC_LIB_VERSION "0.1.0")
set(GENERIC_LIB_SOVERSION "0")
# Set the default build type to release with debug info
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RelWithDebInfo
CACHE STRING
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
)
endif (NOT CMAKE_BUILD_TYPE)
# define system dependent compiler flags
include(CheckCCompilerFlag)
include(MacroCheckCCompilerFlagSSP)
if (UNIX AND NOT WIN32)
#
# Define GNUCC compiler flags
#
if (${CMAKE_C_COMPILER_ID} MATCHES GNU)
# add -Wconversion ?
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -pedantic -pedantic-errors")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wshadow -Wmissing-prototypes -Wdeclaration-after-statement")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused -Wfloat-equal -Wpointer-arith -Wwrite-strings -Wformat-security")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-format-attribute")
# with -fPIC
check_c_compiler_flag("-fPIC" WITH_FPIC)
if (WITH_FPIC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
endif (WITH_FPIC)
check_c_compiler_flag_ssp("-fstack-protector" WITH_STACK_PROTECTOR)
if (WITH_STACK_PROTECTOR)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector")
endif (WITH_STACK_PROTECTOR)
check_c_compiler_flag("-D_FORTIFY_SOURCE=2" WITH_FORTIFY_SOURCE)
if (WITH_FORTIFY_SOURCE)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_FORTIFY_SOURCE=2")
endif (WITH_FORTIFY_SOURCE)
endif (${CMAKE_C_COMPILER_ID} MATCHES GNU)
#
# Check for large filesystem support
#
if (CMAKE_SIZEOF_VOID_P MATCHES "8")
# with large file support
execute_process(
COMMAND
getconf LFS64_CFLAGS
OUTPUT_VARIABLE
_lfs_CFLAGS
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
else (CMAKE_SIZEOF_VOID_P MATCHES "8")
# with large file support
execute_process(
COMMAND
getconf LFS_CFLAGS
OUTPUT_VARIABLE
_lfs_CFLAGS
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif (CMAKE_SIZEOF_VOID_P MATCHES "8")
if (_lfs_CFLAGS)
string(REGEX REPLACE "[\r\n]" " " "${_lfs_CFLAGS}" "${${_lfs_CFLAGS}}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_lfs_CFLAGS}")
endif (_lfs_CFLAGS)
endif (UNIX AND NOT WIN32)
if (MSVC)
# Use secure functions by defaualt and suppress warnings about
#"deprecated" functions
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_NONSTDC_NO_WARNINGS=1 /D _CRT_SECURE_NO_WARNINGS=1")
endif (MSVC)
if (WIN32)
# Same same
set(BIN_INSTALL_DIR "bin" CACHE PATH "-")
set(SBIN_INSTALL_DIR "." CACHE PATH "-")
set(LIB_INSTALL_DIR "lib" CACHE PATH "-")
set(INCLUDE_INSTALL_DIR "include" CACHE PATH "-")
set(PLUGIN_INSTALL_DIR "plugins" CACHE PATH "-")
set(HTML_INSTALL_DIR "doc/HTML" CACHE PATH "-")
set(ICON_INSTALL_DIR "." CACHE PATH "-")
set(SOUND_INSTALL_DIR "." CACHE PATH "-")
set(LOCALE_INSTALL_DIR "lang" CACHE PATH "-")
elseif (UNIX OR OS2)
IF (NOT APPLICATION_NAME)
MESSAGE(STATUS "${PROJECT_NAME} is used as APPLICATION_NAME")
SET(APPLICATION_NAME ${PROJECT_NAME})
ENDIF (NOT APPLICATION_NAME)
# Suffix for Linux
SET(LIB_SUFFIX
CACHE STRING "Define suffix of directory name (32/64)"
)
SET(EXEC_INSTALL_PREFIX
"${CMAKE_INSTALL_PREFIX}"
CACHE PATH "Base directory for executables and libraries"
)
SET(SHARE_INSTALL_PREFIX
"${CMAKE_INSTALL_PREFIX}/share"
CACHE PATH "Base directory for files which go to share/"
)
SET(DATA_INSTALL_PREFIX
"${SHARE_INSTALL_PREFIX}/${APPLICATION_NAME}"
CACHE PATH "The parent directory where applications can install their data")
# The following are directories where stuff will be installed to
SET(BIN_INSTALL_DIR
"${EXEC_INSTALL_PREFIX}/bin"
CACHE PATH "The ${APPLICATION_NAME} binary install dir (default prefix/bin)"
)
SET(SBIN_INSTALL_DIR
"${EXEC_INSTALL_PREFIX}/sbin"
CACHE PATH "The ${APPLICATION_NAME} sbin install dir (default prefix/sbin)"
)
SET(LIB_INSTALL_DIR
"${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}"
CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is prefix/lib)"
)
SET(LIBEXEC_INSTALL_DIR
"${EXEC_INSTALL_PREFIX}/libexec"
CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is prefix/libexec)"
)
SET(PLUGIN_INSTALL_DIR
"${LIB_INSTALL_DIR}/${APPLICATION_NAME}"
CACHE PATH "The subdirectory relative to the install prefix where plugins will be installed (default is prefix/lib/${APPLICATION_NAME})"
)
SET(INCLUDE_INSTALL_DIR
"${CMAKE_INSTALL_PREFIX}/include"
CACHE PATH "The subdirectory to the header prefix (default prefix/include)"
)
SET(DATA_INSTALL_DIR
"${DATA_INSTALL_PREFIX}"
CACHE PATH "The parent directory where applications can install their data (default prefix/share/${APPLICATION_NAME})"
)
SET(HTML_INSTALL_DIR
"${DATA_INSTALL_PREFIX}/doc/HTML"
CACHE PATH "The HTML install dir for documentation (default data/doc/html)"
)
SET(ICON_INSTALL_DIR
"${DATA_INSTALL_PREFIX}/icons"
CACHE PATH "The icon install dir (default data/icons/)"
)
SET(SOUND_INSTALL_DIR
"${DATA_INSTALL_PREFIX}/sounds"
CACHE PATH "The install dir for sound files (default data/sounds)"
)
SET(LOCALE_INSTALL_DIR
"${SHARE_INSTALL_PREFIX}/locale"
CACHE PATH "The install dir for translations (default prefix/share/locale)"
)
SET(XDG_APPS_DIR
"${SHARE_INSTALL_PREFIX}/applications/"
CACHE PATH "The XDG apps dir"
)
SET(XDG_DIRECTORY_DIR
"${SHARE_INSTALL_PREFIX}/desktop-directories"
CACHE PATH "The XDG directory"
)
SET(SYSCONF_INSTALL_DIR
"${EXEC_INSTALL_PREFIX}/etc"
CACHE PATH "The ${APPLICATION_NAME} sysconfig install dir (default prefix/etc)"
)
SET(MAN_INSTALL_DIR
"${SHARE_INSTALL_PREFIX}/man"
CACHE PATH "The ${APPLICATION_NAME} man install dir (default prefix/man)"
)
SET(INFO_INSTALL_DIR
"${SHARE_INSTALL_PREFIX}/info"
CACHE PATH "The ${APPLICATION_NAME} info install dir (default prefix/info)"
)
endif ()
# Set system vars
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
set(LINUX TRUE)
endif(CMAKE_SYSTEM_NAME MATCHES "Linux")
if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
set(FREEBSD TRUE)
set(BSD TRUE)
endif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
if (CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
set(OPENBSD TRUE)
set(BSD TRUE)
endif (CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
if (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
set(NETBSD TRUE)
set(BSD TRUE)
endif (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
if (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
set(SOLARIS TRUE)
endif (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
if (CMAKE_SYSTEM_NAME MATCHES "OS2")
set(OS2 TRUE)
endif (CMAKE_SYSTEM_NAME MATCHES "OS2")
# - Try to find ARKCOMM
# Once done, this will define
#
# ARKCOMM_FOUND - system has scicoslab
# ARKCOMM_INCLUDE_DIRS - the scicoslab include directories
# ARKCOMM_LIBRARIES - libraries to link to
include(LibFindMacros)
include(MacroCommonPaths)
MacroCommonPaths(ARKCOMM)
# Include dir
find_path(ARKCOMM_INCLUDE_DIR
NAMES arkcomm/AsyncSerial.hpp
PATHS ${COMMON_INCLUDE_PATHS_ARKCOMM}
)
# the library itself
find_library(ARKCOMM_LIBRARY
NAMES arkcomm
PATHS ${COMMON_LIBRARY_PATHS_ARKCOMM}
)
# the import file
find_path(ARKCOMM_LIBRARY_DIR
NAMES arkcomm/arkcomm-targets.cmake
PATHS ${COMMON_LIBRARY_PATHS_ARKCOMM}
)
set(ARKCOMM_LIB_IMPORT ${ARKCOMM_LIBRARY_DIR}/arkcomm/arkcomm-targets.cmake)
# Set the include dir variables and the libraries and let libfind_process do the rest.
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
set(ARKCOMM_PROCESS_INCLUDES ARKCOMM_INCLUDE_DIR)
set(ARKCOMM_PROCESS_LIBS ARKCOMM_LIBRARY ARKCOMM_LIBRARIES)
libfind_process(ARKCOMM)
# - Try to find ARKMATH
# Once done, this will define
#
# ARKMATH_FOUND - system has scicoslab
# ARKMATH_INCLUDE_DIRS - the scicoslab include directories
# ARKMATH_LIBRARIES - libraries to link to
include(LibFindMacros)
include(MacroCommonPaths)
MacroCommonPaths(ARKMATH)
# Include dir
find_path(ARKMATH_INCLUDE_DIR
NAMES arkmath/storage_adaptors.hpp
PATHS ${COMMON_INCLUDE_PATHS_ARKMATH}
)
# data dir
find_path(ARKMATH_DATA_DIR_SEARCH
NAMES arkmath/data/WMM.COF
PATHS ${COMMON_DATA_PATHS_ARKMATH}
)
set(ARKMATH_DATA_DIR ${ARKMATH_DATA_DIR_SEARCH}/arkmath/data)
# the library itself
find_library(ARKMATH_LIBRARY
NAMES arkmath
PATHS ${COMMON_LIBRARY_PATHS_ARKMATH}
)
# the import file
find_path(ARKMATH_LIBRARY_DIR
NAMES arkmath/arkmath-targets.cmake
PATHS ${COMMON_LIBRARY_PATHS_ARKMATH}
)
set(ARKMATH_LIB_IMPORT ${ARKMATH_LIBRARY_DIR}/arkmath/arkmath-targets.cmake)
# Set the include dir variables and the libraries and let libfind_process do the rest.
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
set(ARKMATH_PROCESS_INCLUDES ARKMATH_INCLUDE_DIR)
set(ARKMATH_PROCESS_LIBS ARKMATH_LIBRARY ARKMATH_LIBRARIES)
libfind_process(ARKMATH)
# - Try to find ARKOSG
# Once done, this will define
#
# ARKOSG_FOUND - system has scicoslab
# ARKOSG_INCLUDE_DIRS - the scicoslab include directories
# ARKOSG_LIBRARIES - libraries to link to
include(LibFindMacros)
include(MacroCommonPaths)
MacroCommonPaths(ARKOSG)
# Include dir
find_path(ARKOSG_INCLUDE_DIR
NAMES arkosg/osgUtils.hpp
PATHS ${COMMON_INCLUDE_PATHS_ARKOSG}
)
# data dir
find_path(ARKOSG_DATA_DIR_SEARCH
NAMES arkosg/data/models/plane.ac
PATHS ${COMMON_DATA_PATHS_ARKOSG}
)
set(ARKOSG_DATA_DIR ${ARKOSG_DATA_DIR_SEARCH}/arkosg/data)
# the library itself
find_library(ARKOSG_LIBRARY
NAMES arkosg
PATHS ${COMMON_LIBRARY_PATHS_ARKOSG}
)
# the import file
find_path(ARKOSG_LIBRARY_DIR
NAMES arkosg/arkosg-targets.cmake
PATHS ${COMMON_LIBRARY_PATHS_ARKOSG}
)
set(ARKOSG_LIB_IMPORT ${ARKOSG_LIBRARY_DIR}/arkosg/arkosg-targets.cmake)
# Set the include dir variables and the libraries and let libfind_process do the rest.
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
set(ARKOSG_PROCESS_INCLUDES ARKOSG_INCLUDE_DIR)
set(ARKOSG_PROCESS_LIBS ARKOSG_LIBRARY ARKOSG_LIBRARIES)
libfind_process(ARKOSG)
# - Try to find ARKSCICOS
# Once done, this will define
#
# ARKSCICOS_FOUND - system has scicoslab
# ARKSCICOS_INCLUDE_DIRS - the scicoslab include directories
# ARKSCICOS_LIBRARIES - libraries to link to
include(LibFindMacroos)
include(MacroCommonPaths)
MacroCommonPaths(ARKSCICOS)
# Include dir
find_path(ARKSCICOS_INCLUDE_DIR
NAMES definiotions.hpp
PATHS ${COMMON_INCLUDE_PATHS_ARKSCICOS}
)
# the library itself
find_library(ARKSCICOS_LIBRARY
NAMES arkscicos
PATHS ${COMMON_LIBRARY_PATHS_ARKSCICOS}
)
# the import file
find_path(ARKSCICOS_LIBRARY_DIR
NAMES arkscicos/arkscicos-targets.cmake
PATHS ${COMMON_LIBRARY_PATHS_ARKSCICOS}
)
set(ARKSCICOS_LIB_IMPORT ${ARKSCICOS_LIBRARY_DIR}/arkscicos/arkscicos-targets.cmake)
# Set the include dir variables and the libraries and let libfind_process do the rest.
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
set(ARKSCICOS_PROCESS_INCLUDES ARKSCICOS_INCLUDE_DIR)
set(ARKSCICOS_PROCESS_LIBS ARKSCICOS_LIBRARY ARKSCICOS_LIBRARIES)
libfind_process(ARKSCICOS)
# - Try to find BOOSTNUMERICBINDINGS
# Once done, this will define
#
# BOOSTNUMERICBINDINGS_FOUND - system has scicoslab
# BOOSTNUMERICBINDINGS_INCLUDE_DIRS - the scicoslab include directories
include(LibFindMacros)
include(MacroCommonPaths)
MacroCommonPaths(BOOSTNUMERICBINDINGS)
# Include dir
find_path(BOOSTNUMERICBINDINGS_INCLUDE_DIR
NAMES boost/numeric/bindings/lapack/lapack.h
PATHS ${COMMON_INCLUDE_PATHS_BOOSTNUMERICBINDINGS}
)
# Set the include dir variables and the libraries and let libfind_process do the rest.
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
set(BOOSTNUMERICBINDINGS_PROCESS_INCLUDES BOOSTNUMERICBINDINGS_INCLUDE_DIR)
libfind_process(BOOSTNUMERICBINDINGS)
# - Try to find EASYSTAR
# Once done, this will define
#
# EASYSTAR_FOUND - system has easystar
# EASYSTAR_INCLUDE_DIRS - the easystar include directories
include(LibFindMacros)
include(MacroCommonPaths)
MacroCommonPaths(EASYSTAR)
# Include dir
find_path(EASYSTAR_INCLUDE_DIR
NAMES easystar/easystar.xml
PATHS ${COMMON_INCLUDE_PATHS_EASYSTAR}
)
# Set the include dir variables and the libraries and let libfind_process do the rest.
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
set(EASYSTAR_PROCESS_INCLUDES EASYSTAR_INCLUDE_DIR)
libfind_process(EASYSTAR)
# - Try to find JSBSIM
# Once done, this will define
#
# JSBSIM_FOUND - system has scicoslab
# JSBSIM_INCLUDE_DIRS - the scicoslab include directories
# JSBSIM_LIBRARIES - libraries to link to
include(LibFindMacros)
include(MacroCommonPaths)
MacroCommonPaths(JSBSIM)
# Include dir
find_path(JSBSIM_INCLUDE_DIR
NAMES JSBSim/initialization/FGTrimmer.h
PATHS ${COMMON_INCLUDE_PATHS_JSBSIM}
)
# data dir
find_path(JSBSIM_DATA_DIR_SEARCH
NAMES jsbsim/aircraft/aircraft_template.xml
PATHS ${COMMON_DATA_PATHS_JSBSIM}
)
set(JSBSIM_DATA_DIR ${JSBSIM_DATA_DIR_SEARCH}/jsbsim)
# Finally the library itself
find_library(JSBSIM_LIBRARY
NAMES JSBSim
PATHS ${COMMON_LIBRARY_PATHS_JSBSIM}
)
# Set the include dir variables and the libraries and let libfind_process do the rest.
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
set(JSBSIM_PROCESS_INCLUDES JSBSIM_INCLUDE_DIR)
set(JSBSIM_PROCESS_LIBS JSBSIM_LIBRARY JSBSIM_LIBRARIES)
set(JSBSIM_INCLUDE_DIR ${JSBSIM_INCLUDE_DIR} ${JSBSIM_INCLUDE_DIR}/JSBSim)
set(JSBSIM_INCLUDES ${JSBSIM_INCLUDES} ${JSBSIM_INCLUDE_DIR}/JSBSim)
libfind_process(JSBSIM)
# - Try to find MAVLINK
# Once done, this will define
#
# MAVLINK_FOUND - system has scicoslab
# MAVLINK_INCLUDE_DIRS - the scicoslab include directories
include(LibFindMacros)
include(MacroCommonPaths)
MacroCommonPaths(MAVLINK)
# Include dir
find_path(MAVLINK_INCLUDE_DIR
NAMES mavlink/mavlink_types.h
PATHS ${COMMON_INCLUDE_PATHS_MAVLINK}
)
# Set the include dir variables and the libraries and let libfind_process do the rest.
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
set(MAVLINK_PROCESS_INCLUDES MAVLINK_INCLUDE_DIR)
libfind_process(MAVLINK)
# Locate plib
# This module defines
# PLIB_LIBRARY
# PLIB_FOUND, if false, do not try to link to plib
# PLIB_INCLUDE_DIR, where to find the headers
#
# $PLIB_DIR is an environment variable that would
# correspond to the ./configure --prefix=$PLIB_DIR
#
# Created David Guthrie with code by Robert Osfield.
FIND_PATH(PLIB_INCLUDE_DIR plib/js.h
$ENV{PLIB_DIR}/include
$ENV{PLIB_DIR}
$ENV{PLIB_ROOT}/include
${DELTA3D_EXT_DIR}/inc
$ENV{DELTA_ROOT}/ext/inc
~/Library/Frameworks
/Library/Frameworks
/usr/local/include
/usr/include
/sw/include # Fink
/opt/local/include # DarwinPorts
/opt/csw/include # Blastwave
/opt/include
[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;PLIB_ROOT]/include
/usr/freeware/include
)
MACRO(FIND_PLIB_LIBRARY MYLIBRARY MYLIBRARYNAMES)
FIND_LIBRARY(${MYLIBRARY}
NAMES ${MYLIBRARYNAMES}
PATHS
$ENV{PLIB_DIR}/lib
$ENV{PLIB_DIR}
$ENV{OSGDIR}/lib
$ENV{OSGDIR}
$ENV{PLIB_ROOT}/lib
${DELTA3D_EXT_DIR}/lib
$ENV{DELTA_ROOT}/ext/lib
~/Library/Frameworks
/Library/Frameworks
/usr/local/lib
/usr/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session\ Manager\\Environment;PLIB_ROOT]/lib
/usr/freeware/lib64
)
ENDMACRO(FIND_PLIB_LIBRARY MYLIBRARY MYLIBRARYNAMES)
SET(PLIB_RELEASE_JS_LIB_NAMES js plibjs)
SET(PLIB_RELEASE_UL_LIB_NAMES ul plibul)
SET(PLIB_DEBUG_JS_LIB_NAMES js_d plibjs_d)
SET(PLIB_DEBUG_UL_LIB_NAMES ul_d plibul_d)
FIND_PLIB_LIBRARY(PLIB_JS_LIBRARY "${PLIB_RELEASE_JS_LIB_NAMES}")
FIND_PLIB_LIBRARY(PLIB_JS_LIBRARY_DEBUG "${PLIB_DEBUG_JS_LIB_NAMES}")
FIND_PLIB_LIBRARY(PLIB_UL_LIBRARY "${PLIB_RELEASE_UL_LIB_NAMES}")
FIND_PLIB_LIBRARY(PLIB_UL_LIBRARY_DEBUG "${PLIB_DEBUG_UL_LIB_NAMES}")
SET(PLIB_FOUND "NO")
IF(PLIB_JS_LIBRARY AND PLIB_INCLUDE_DIR)
SET(PLIB_FOUND "YES")
ENDIF(PLIB_JS_LIBRARY AND PLIB_INCLUDE_DIR)
# - Try to find SCICOSLAB
# Once done, this will define
#
# SCICOSLAB_FOUND - system has scicoslab
# SCICOSLAB_INCLUDE_DIRS - the scicoslab include directories
# SCICOSLAB_CONTRIB_DIR - the scicoslab contrib directory
include(LibFindMacros)
# find scicos
if (APPLE)
execute_process(COMMAND mdfind "kMDItemKind == Application && kMDItemDisplayName == ScicosLabGtk"
COMMAND head -1
RESULT_VARIABLE RESULT
OUTPUT_VARIABLE SCICOS_APP_BUNDLE
ERROR_VARIABLE ERROR_MESSAGE
OUTPUT_STRIP_TRAILING_WHITESPACE)
if (RESULT)
MESSAGE(FATAL_ERROR "Could not locate 'ScicosLabGtk.app' - ${ERROR_MESSAGE}")
endif (RESULT)
execute_process(COMMAND find ${SCICOS_APP_BUNDLE} -name routines
COMMAND head -1
RESULT_VARIABLE RESULT
OUTPUT_VARIABLE SCICOSLAB_GUESS_INCLUDE_DIRS
ERROR_VARIABLE ERROR_MESSAGE
OUTPUT_STRIP_TRAILING_WHITESPACE)
if (RESULT)
MESSAGE(FATAL_ERROR "Could not locate 'scicos_block4.h' in ScicosLabGtk.app - ${ERROR_MESSAGE}")
endif (RESULT)
execute_process(COMMAND find ${SCICOS_APP_BUNDLE} -name contrib
COMMAND head -1
RESULT_VARIABLE RESULT
OUTPUT_VARIABLE SCICOSLAB_GUESS_CONTRIB_DIRS
ERROR_VARIABLE ERROR_MESSAGE
OUTPUT_STRIP_TRAILING_WHITESPACE)
if (RESULT)
MESSAGE(FATAL_ERROR "Could not locate 'loader.sce' in ScicosLabGtk.app - ${ERROR_MESSAGE}")
endif (RESULT)
elseif(UNIX)
set(SCICOSLAB_GUESS_INCLUDE_DIRS
/usr/lib/scicoslab-gtk-4.4b7/routines
/usr/lib/scicoslab-gtk-4.4/routines
/usr/lib/scicoslab-gtk-4.4.1/routines
)
set(SCICOSLAB_GUESS_CONTRIB_DIRS
/usr/lib/scicoslab-gtk-4.4b7/contrib
/usr/lib/scicoslab-gtk-4.4/contrib
/usr/lib/scicoslab-gtk-4.4.1/contrib
)
elseif(WIN32)
message(FATAL_ERROR "scicoslab cmake find module doesn't work for windows")
endif()
# Include dir
find_path(SCICOSLAB_INCLUDE_DIR
NAMES scicos/scicos_block4.h
PATHS ${SCICOSLAB_GUESS_INCLUDE_DIRS}
)
# Contrib dir
find_path(SCICOSLAB_CONTRIB_DIR
NAMES loader.sce
PATHS ${SCICOSLAB_GUESS_CONTRIB_DIRS}
)
message(STATUS "contrib dir ${SCICOSLAB_CONTRIB_DIR}")
# Set the include dir variables and the libraries and let libfind_process do the rest.
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
set(SCICOSLAB_PROCESS_INCLUDES SCICOSLAB_INCLUDE_DIR)
libfind_process(SCICOSLAB)
# vim:ts=4:sw=4:expandtab
# - Try to find SIMGEAR
# Once done, this will define
#
# SIMGEAR_FOUND - system has scicoslab
# SIMGEAR_INCLUDE_DIRS - the scicoslab include directories
# SIMGEAR_LIBRARIES - libraries to link to
include(LibFindMacros)
include(MacroCommonPaths)
MacroCommonPaths(SIMGEAR)
# Include dir
find_path(SIMGEAR_INCLUDE_DIR
NAMES simgear/version.h
PATHS ${COMMON_INCLUDE_PATHS_SIMGEAR}
)
# Finally the library itself
find_library(SIMGEAR_LIBRARY
NAMES sgio
PATHS ${COMMON_LIBRARY_PATHS_SIMGEAR}
)
# Set the include dir variables and the libraries and let libfind_process do the rest.
# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
set(SIMGEAR_PROCESS_INCLUDES SIMGEAR_INCLUDE_DIR)
set(SIMGEAR_PROCESS_LIBS SIMGEAR_LIBRARY SIMGEAR_LIBRARIES)
libfind_process(SIMGEAR)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment