diff --git a/.gitignore b/.gitignore index c4ae106..009d286 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ tmp* Makefile* *~ *.so* +*.a *.pro.user* *.orig openEMS @@ -17,3 +18,5 @@ localPaths.pri **CMakeFiles CMakeCache.txt cmake_install.cmake +install_manifest.txt +localConfig.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 46e2665..e1ee0d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,10 @@ PROJECT(openEMS CXX) cmake_minimum_required(VERSION 2.8) +IF(EXISTS ${PROJECT_SOURCE_DIR}/localConfig.cmake) + include(${PROJECT_SOURCE_DIR}/localConfig.cmake) +ENDIF() + # add git revision IF(EXISTS ${PROJECT_SOURCE_DIR}/.git ) FIND_PACKAGE(Git) @@ -18,9 +22,52 @@ ENDIF() ADD_DEFINITIONS(-DGIT_VERSION=\"${VERSION}\") +##### RPATH settings, see: http://www.cmake.org/Wiki/CMake_RPATH_handling#Always_full_RPATH ####### +# use, i.e. don't skip the full RPATH for the build tree +SET(CMAKE_SKIP_BUILD_RPATH FALSE) + +# when building, don't use the install RPATH already +# (but later on when installing) +SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + +SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") + +# add the automatically determined parts of the RPATH +# which point to directories outside the build tree to the install RPATH +SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + +# the RPATH to be used when installing, but only if it's not a system directory +LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir) +IF("${isSystemDir}" STREQUAL "-1") + SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") +ENDIF("${isSystemDir}" STREQUAL "-1") +#################################################################################################### + # Set locations of extra CMake modules SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${openEMS_SOURCE_DIR}/cmake/Modules/") +# fparser +# $ cmake -D FPARSER_ROOT_DIR=~/opt/openEMS . +# SET(FPARSER_ROOT_DIR ~/opt/openEMS) +find_library(fparser_LIBRARIES NAMES fparser + HINTS + ${FPARSER_ROOT_DIR}/lib +) +message(STATUS "fparser: ${fparser_LIBRARIES}" ) +#TODO test if fparser was found +INCLUDE_DIRECTORIES( ${FPARSER_ROOT_DIR}/include ) + +# CSXCAD +# $ cmake -D CSXCAD_ROOT_DIR=~/opt/openEMS . +# SET(CSXCAD_ROOT_DIR ~/opt/openEMS) +find_library(CSXCAD_LIBRARIES NAMES CSXCAD + HINTS + ${CSXCAD_ROOT_DIR}/lib +) +message(STATUS "CSXCAD: ${CSXCAD_LIBRARIES}" ) +#TODO test if CSXCADs was found +INCLUDE_DIRECTORIES( ${CSXCAD_ROOT_DIR}/include/CSXCAD ) + # TinyXML module from https://github.com/ros/cmake_modules find_package(TinyXML REQUIRED) ADD_DEFINITIONS( -DTIXML_USE_STL ) @@ -96,16 +143,13 @@ set(SOURCES openems.cpp ) - INCLUDE_DIRECTORIES( ${openEMS_SOURCE_DIR} ) #find tools -INCLUDE_DIRECTORIES( ${CSXCAD_SOURCE_DIR}/src ) #find ContinuousStructure.h - ADD_EXECUTABLE( openEMS ${SOURCES} ) TARGET_LINK_LIBRARIES( openEMS - fparser - CSXCAD + ${CSXCAD_LIBRARIES} + ${fparser_LIBRARIES} FDTD Common tools diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 45ad321..a377a52 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -2,7 +2,6 @@ set(SOURCES AdrOp.cpp ErrorMsg.cpp - ExpenseLog.cpp array_ops.cpp global.cpp hdf5_file_reader.cpp