#======================================================================= # FILE: moos-ivp-extend/CMakeLists.txt # DATE: 2012/07/24 # INFO: Top-level CMakeLists.txt file for the moos-ivp-extend project # NAME: Maintained by Mike Benjamin - Original setup by Christian Convey # Chris Gagner, and tips borrowed from Dave Billin #======================================================================= CMAKE_MINIMUM_REQUIRED(VERSION 3.5) PROJECT( IVP_EXTEND ) set (CMAKE_CXX_STANDARD 11) #======================================================================= # IvP 库安装前缀(MOOS 与 IvP 均安装于系统 /usr/local) #======================================================================= set (IVP_PREFIX "/usr/local") # jsoncpp 头文件目录(Ubuntu 布局:/usr/include/jsoncpp/json/) INCLUDE_DIRECTORIES(/usr/include/jsoncpp) #======================================================================= # Set the output directories for the binary and library files #======================================================================= GET_FILENAME_COMPONENT(IVP_EXTEND_BIN_DIR "${CMAKE_SOURCE_DIR}/bin" ABSOLUTE ) GET_FILENAME_COMPONENT(IVP_EXTEND_LIB_DIR "${CMAKE_SOURCE_DIR}/lib" ABSOLUTE ) SET( LIBRARY_OUTPUT_PATH "${IVP_EXTEND_LIB_DIR}" CACHE PATH "" ) SET( ARCHIVE_OUTPUT_DIRECTORY "${IVP_EXTEND_LIB_DIR}" CACHE PATH "" ) SET( LIBRARY_OUTPUT_DIRECTORY "${IVP_EXTEND_LIB_DIR}" CACHE PATH "" ) SET( EXECUTABLE_OUTPUT_PATH "${IVP_EXTEND_BIN_DIR}" CACHE PATH "" ) SET( RUNTIME_OUTPUT_DIRECTORY "${IVP_EXTEND_BIN_DIR}" CACHE PATH "" ) #======================================================================= # Find MOOS #======================================================================= find_package(MOOS 10.0) INCLUDE_DIRECTORIES(${MOOS_INCLUDE_DIRS}) #======================================================================= # Find the "moos-ivp" base directory #======================================================================= # IvP 头文件与库从系统安装前缀加载 INCLUDE_DIRECTORIES(${IVP_PREFIX}/include/ivp) FILE(GLOB IVP_INCLUDE_DIRS ${IVP_PREFIX}/include/ivp ) INCLUDE_DIRECTORIES(${IVP_INCLUDE_DIRS}) FILE(GLOB IVP_LIBRARY_DIRS ${IVP_PREFIX}/lib ) LINK_DIRECTORIES(${IVP_LIBRARY_DIRS}) #====================================================================== # Specify Compiler Flags #====================================================================== IF( ${WIN32} ) #--------------------------------------------- # Windows Compiler Flags #--------------------------------------------- IF(MSVC) # Flags for Microsoft Visual Studio SET( WALL_ON OFF CACHE BOOL "tell me about all compiler warnings (-Wall) ") IF(WALL_ON) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") ENDIF(WALL_ON) ELSE(MSVC) # Other Windows compilers go here ENDIF(MSVC) ELSE( ${WIN32} ) #--------------------------------------------- # Linux and Apple Compiler Flags #--------------------------------------------- # Force -fPIC because gcc complains when we don't use it with x86_64 code. # Note sure why: -fPIC should only be needed for shared objects, and # AFAIK, CMake gets that right when building shared objects. -CJC SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -g -Wdeprecated-declarations") IF(CMAKE_COMPILER_IS_GNUCXX) # Flags for the GNU C++ Compiler SET( WALL_ON OFF CACHE BOOL "tell me about all compiler warnings (-Wall) ") IF(WALL_ON) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" -C++11) ENDIF( WALL_ON) ELSE(CMAKE_COMPILER_IS_GNUCXX) ENDIF(CMAKE_COMPILER_IS_GNUCXX) ENDIF( ${WIN32} ) #======================================================================= # Add Subdirectories #======================================================================= ADD_SUBDIRECTORY( src ) ADD_SUBDIRECTORY( test )