Skip to content

Commit

Permalink
- improved path handling of cpp-runtime
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@25212 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Marcus Walther committed Mar 23, 2015
1 parent 574dcac commit 4f6b67a
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 295 deletions.
2 changes: 1 addition & 1 deletion Compiler/Template/CodegenFMUCpp.tpl
Expand Up @@ -523,7 +523,7 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__), simula

CFLAGS=$(CFLAGS_BASED_ON_INIT_FILE) -Winvalid-pch $(SYSTEM_CFLAGS) -I"$(OMHOME)/include/omc/cpp" -I"$(UMFPACK_INCLUDE)" -I"$(OMHOME)/include/omc/cpp/Core" -I"$(OMHOME)/include/omc/cpp/SimCoreFactory" -I"$(BOOST_INCLUDE)" <%makefileParams.includes ; separator=" "%>
CPPFLAGS = $(CFLAGS)
LDFLAGS=-L"$(OMHOME)/lib/omc/cpp" -L$(BOOST_LIBS) -L"$(BOOST_LIBS)"
LDFLAGS=-L"$(OMHOME)/lib/omc/cpp" -L"$(BOOST_LIBS)"
PLATFORM="<%platformstr%>"

CALCHELPERMAINFILE=OMCpp<%fileNamePrefix%>CalcHelperMain.cpp
Expand Down
295 changes: 12 additions & 283 deletions SimulationRuntime/cpp/CMake/FindSuiteSparse.cmake
Expand Up @@ -7,6 +7,7 @@
# SUITESPARSE_UMFPACK_INCLUDE_DIR_OMC - This variable contains either the absolute path to the include dir, if the system version is used or the relative path to $(OMHOME) of the OMC-Version is used
# SUITESPARSE_UMFPACK_LIBRARIES - The umfpack libraries including the amd library
# SUITESPARSE_UMFPACK_LIBRARIES_OMC - This variable contains either the absolute path to umfpack libraries, if the system version is used or the relative path to $(OMHOME) of the OMC-Version is used
# SUITESPARSE_UMFPACK_LIBS

SET(SUITESPARSE_UMFPACK_FOUND false)
SET(SUITESPARSE_UMFPACK_USE_OMC false)
Expand Down Expand Up @@ -43,6 +44,7 @@ IF(UMFPACK_H_OMC AND UFCONFIG_H_OMC AND UMFPACK_LIB_OMC AND AMD_LIB_OMC)
MESSAGE(STATUS "Using ${UMFPACK_H_OMC} of OpenModelica")
SET(SUITESPARSE_UMFPACK_FOUND true)
SET(SUITESPARSE_UMFPACK_USE_OMC true)
SET(SUITESPARSE_UMFPACK_LIBS "$(OMHOME)/build/lib/omc")
ELSE(UMFPACK_H_OMC AND UMFPACK_LIB_OMC)
MESSAGE(STATUS "Umfpack of OpenModelica was not found. Try to find system umfpack.")

Expand Down Expand Up @@ -70,295 +72,22 @@ ELSE(UMFPACK_H_OMC AND UMFPACK_LIB_OMC)
SET(SUITESPARSE_UMFPACK_FOUND false)
ENDIF(UFCONFIG_H)

IF(SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
IF(UMFPACK_LIB AND UMFPACK_H)
SET(SUITESPARSE_UMFPACK_FOUND true)
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES ${SUITESPARSE_UMFPACK_LIB_DIR})
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES_OMC ${SUITESPARSE_UMFPACK_LIB_DIR})
MESSAGE(STATUS "Using ${SUITESPARSE_UMFPACK_LIB_DIR} of System")
ELSE(SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES ${UMFPACK_LIB})
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES_OMC ${UMFPACK_LIB})
MESSAGE(STATUS "Using ${UMFPACK_LIB} of System")
ELSE(UMFPACK_LIB AND UMFPACK_H)
SET(SUITESPARSE_UMFPACK_FOUND false)
MESSAGE(STATUS "Could not find umfpack libraries")
ENDIF(SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
ENDIF(UMFPACK_LIB AND UMFPACK_H)

IF(AMD_LIB AND SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
IF(AMD_LIB AND UMFPACK_LIB AND UMFPACK_H)
LIST(APPEND SUITESPARSE_LIBRARIES ${AMD_LIB})
LIST(APPEND SUITESPARSE_LIBRARIES_OMC ${AMD_LIB})
ELSE(AMD_LIB AND SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
ELSE(AMD_LIB AND UMFPACK_LIB AND UMFPACK_H)
SET(SUITESPARSE_UMFPACK_FOUND false)
MESSAGE(STATUS "Could not find amd library")
ENDIF(AMD_LIB AND SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)

ENDIF(UMFPACK_H_OMC AND UFCONFIG_H_OMC AND UMFPACK_LIB_OMC AND AMD_LIB_OMC)
# This file tries to find umfpack, which is part of the suitesparse library-package. Normally the umfpack-library is build with the c-runtime, so we first try
# to use these files. The following variables are set:
#
# SUITESPARSE_UMFPACK_FOUND - True if the umfpack-library of suite sparse was found
# SUITESPARSE_UMFPACK_USE_OMC - True if the umfpack-include and libraries of OpenModelica should be used
# SUITESPARSE_UMFPACK_INCLUDE_DIR - The include folders that contain umfpack.h and UFconfig.h
# SUITESPARSE_UMFPACK_INCLUDE_DIR_OMC - This variable contains either the absolute path to the include dir, if the system version is used or the relative path to $(OMHOME) of the OMC-Version is used
# SUITESPARSE_UMFPACK_LIBRARIES - The umfpack libraries including the amd library
# SUITESPARSE_UMFPACK_LIBRARIES_OMC - This variable contains either the absolute path to umfpack libraries, if the system version is used or the relative path to $(OMHOME) of the OMC-Version is used

SET(SUITESPARSE_UMFPACK_FOUND false)
SET(SUITESPARSE_UMFPACK_USE_OMC false)


MESSAGE(STATUS "Searching for umfpack.h of OpenModelica")
FIND_FILE(UMFPACK_H_OMC umfpack.h HINTS "${CMAKE_SOURCE_DIR}/../../build/include/omc/c/suitesparse/Include" NO_DEFAULT_PATH)
FIND_FILE(UMFPACK_H umfpack.h)
FIND_FILE(UFCONFIG_H_OMC UFconfig.h HINTS "${CMAKE_SOURCE_DIR}/../../build/include/omc/c/suitesparse/Include" NO_DEFAULT_PATH)
FIND_FILE(UFCONFIG_H UFconfig.h)
FIND_LIBRARY(UMFPACK_LIB_OMC umfpack HINTS "${CMAKE_SOURCE_DIR}/../../build/lib/omc" NO_DEFAULT_PATH)
FIND_LIBRARY(UMFPACK_LIB umfpack)
FIND_LIBRARY(AMD_LIB_OMC amd HINTS "${CMAKE_SOURCE_DIR}/../../build/lib/omc" NO_DEFAULT_PATH)
FIND_LIBRARY(AMD_LIB amd)

IF(UMFPACK_H_OMC AND UFCONFIG_H_OMC AND UMFPACK_LIB_OMC AND AMD_LIB_OMC)
GET_FILENAME_COMPONENT(SUITESPARSE_UMFPACK_INCLUDE_DIR "${UMFPACK_H_OMC}" PATH)
SET(SUITESPARSE_UMFPACK_INCLUDE_DIR_OMC "$(OMHOME)/include/omc/c/suitesparse/Include")
GET_FILENAME_COMPONENT(SUITESPARSE_UFCONFIG_INCLUDE_DIR "${UFCONFIG_H_OMC}" PATH)
SET(SUITESPARSE_UFCONFIG_INCLUDE_DIR_OMC "$(OMHOME)/include/omc/c/suitesparse/Include")

FOREACH(lib ${UMFPACK_LIB_OMC})
GET_FILENAME_COMPONENT(libTrimmed "${lib}" NAME)
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES_OMC "$(OMHOME)/lib/omc/${libTrimmed}")
ENDFOREACH(lib ${UMFPACK_LIB_OMC})
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES ${UMFPACK_LIB_OMC})

FOREACH(lib ${AMD_LIB_OMC})
GET_FILENAME_COMPONENT(libTrimmed "${lib}" NAME)
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES_OMC "$(OMHOME)/lib/omc/${libTrimmed}")
ENDFOREACH(lib ${AMD_LIB_OMC})
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES ${AMD_LIB_OMC})

MESSAGE(STATUS "Using ${UMFPACK_H_OMC} of OpenModelica")
SET(SUITESPARSE_UMFPACK_FOUND true)
SET(SUITESPARSE_UMFPACK_USE_OMC true)
ELSE(UMFPACK_H_OMC AND UMFPACK_LIB_OMC)
MESSAGE(STATUS "Umfpack of OpenModelica was not found. Try to find system umfpack.")

IF(UMFPACK_H)
GET_FILENAME_COMPONENT(SUITESPARSE_UMFPACK_INCLUDE_DIR "${UMFPACK_H}" PATH)
SET(SUITESPARSE_UMFPACK_INCLUDE_DIR_OMC ${SUITESPARSE_UMFPACK_INCLUDE_DIR})
MESSAGE(STATUS "Using ${UMFPACK_H} of System")
SET(SUITESPARSE_UMFPACK_FOUND true)
ELSE(UMFPACK_H)
MESSAGE(STATUS "Could not find umfpack.h")
SET(SUITESPARSE_UMFPACK_FOUND false)
ENDIF(UMFPACK_H)

IF(UFCONFIG_H)
GET_FILENAME_COMPONENT(SUITESPARSE_UFCONFIG_INCLUDE_DIR "${UFCONFIG_H}" PATH)
IF("${SUITESPARSE_UMFPACK_INCLUDE_DIR}" STREQUAL "${SUITESPARSE_UFCONFIG_INCLUDE_DIR}")
ELSE()
SET(SUITESPARSE_UFCONFIG_INCLUDE_DIR_OMC ${SUITESPARSE_UFCONFIG_INCLUDE_DIR})
ENDIF()

MESSAGE(STATUS "Using ${UFCONFIG_H} of System")
SET(SUITESPARSE_UMFPACK_FOUND true)
ELSE(UFCONFIG_H)
MESSAGE(STATUS "Could not find UFconfig.h")
SET(SUITESPARSE_UMFPACK_FOUND false)
ENDIF(UFCONFIG_H)

IF(SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
SET(SUITESPARSE_UMFPACK_FOUND true)
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES ${SUITESPARSE_UMFPACK_LIB_DIR})
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES_OMC ${SUITESPARSE_UMFPACK_LIB_DIR})
MESSAGE(STATUS "Using ${SUITESPARSE_UMFPACK_LIB_DIR} of System")
ELSE(SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
SET(SUITESPARSE_UMFPACK_FOUND false)
MESSAGE(STATUS "Could not find umfpack libraries")
ENDIF(SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)

IF(AMD_LIB AND SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
LIST(APPEND SUITESPARSE_LIBRARIES ${AMD_LIB})
LIST(APPEND SUITESPARSE_LIBRARIES_OMC ${AMD_LIB})
ELSE(AMD_LIB AND SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
SET(SUITESPARSE_UMFPACK_FOUND false)
MESSAGE(STATUS "Could not find amd library")
ENDIF(AMD_LIB AND SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)

ENDIF(UMFPACK_H_OMC AND UFCONFIG_H_OMC AND UMFPACK_LIB_OMC AND AMD_LIB_OMC)
# This file tries to find umfpack, which is part of the suitesparse library-package. Normally the umfpack-library is build with the c-runtime, so we first try
# to use these files. The following variables are set:
#
# SUITESPARSE_UMFPACK_FOUND - True if the umfpack-library of suite sparse was found
# SUITESPARSE_UMFPACK_USE_OMC - True if the umfpack-include and libraries of OpenModelica should be used
# SUITESPARSE_UMFPACK_INCLUDE_DIR - The include folders that contain umfpack.h and UFconfig.h
# SUITESPARSE_UMFPACK_INCLUDE_DIR_OMC - This variable contains either the absolute path to the include dir, if the system version is used or the relative path to $(OMHOME) of the OMC-Version is used
# SUITESPARSE_UMFPACK_LIBRARIES - The umfpack libraries including the amd library
# SUITESPARSE_UMFPACK_LIBRARIES_OMC - This variable contains either the absolute path to umfpack libraries, if the system version is used or the relative path to $(OMHOME) of the OMC-Version is used

SET(SUITESPARSE_UMFPACK_FOUND false)
SET(SUITESPARSE_UMFPACK_USE_OMC false)


MESSAGE(STATUS "Searching for umfpack.h of OpenModelica")
FIND_FILE(UMFPACK_H_OMC umfpack.h HINTS "${CMAKE_SOURCE_DIR}/../../build/include/omc/c/suitesparse/Include" NO_DEFAULT_PATH)
FIND_FILE(UMFPACK_H umfpack.h)
FIND_FILE(UFCONFIG_H_OMC UFconfig.h HINTS "${CMAKE_SOURCE_DIR}/../../build/include/omc/c/suitesparse/Include" NO_DEFAULT_PATH)
FIND_FILE(UFCONFIG_H UFconfig.h)
FIND_LIBRARY(UMFPACK_LIB_OMC umfpack HINTS "${CMAKE_SOURCE_DIR}/../../build/lib/omc" NO_DEFAULT_PATH)
FIND_LIBRARY(UMFPACK_LIB umfpack)
FIND_LIBRARY(AMD_LIB_OMC amd HINTS "${CMAKE_SOURCE_DIR}/../../build/lib/omc" NO_DEFAULT_PATH)
FIND_LIBRARY(AMD_LIB amd)

IF(UMFPACK_H_OMC AND UFCONFIG_H_OMC AND UMFPACK_LIB_OMC AND AMD_LIB_OMC)
GET_FILENAME_COMPONENT(SUITESPARSE_UMFPACK_INCLUDE_DIR "${UMFPACK_H_OMC}" PATH)
SET(SUITESPARSE_UMFPACK_INCLUDE_DIR_OMC "$(OMHOME)/include/omc/c/suitesparse/Include")
GET_FILENAME_COMPONENT(SUITESPARSE_UFCONFIG_INCLUDE_DIR "${UFCONFIG_H_OMC}" PATH)
SET(SUITESPARSE_UFCONFIG_INCLUDE_DIR_OMC "$(OMHOME)/include/omc/c/suitesparse/Include")

FOREACH(lib ${UMFPACK_LIB_OMC})
GET_FILENAME_COMPONENT(libTrimmed "${lib}" NAME)
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES_OMC "$(OMHOME)/lib/omc/${libTrimmed}")
ENDFOREACH(lib ${UMFPACK_LIB_OMC})
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES ${UMFPACK_LIB_OMC})

FOREACH(lib ${AMD_LIB_OMC})
GET_FILENAME_COMPONENT(libTrimmed "${lib}" NAME)
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES_OMC "$(OMHOME)/lib/omc/${libTrimmed}")
ENDFOREACH(lib ${AMD_LIB_OMC})
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES ${AMD_LIB_OMC})

MESSAGE(STATUS "Using ${UMFPACK_H_OMC} of OpenModelica")
SET(SUITESPARSE_UMFPACK_FOUND true)
SET(SUITESPARSE_UMFPACK_USE_OMC true)
ELSE(UMFPACK_H_OMC AND UMFPACK_LIB_OMC)
MESSAGE(STATUS "Umfpack of OpenModelica was not found. Try to find system umfpack.")

IF(UMFPACK_H)
GET_FILENAME_COMPONENT(SUITESPARSE_UMFPACK_INCLUDE_DIR "${UMFPACK_H}" PATH)
SET(SUITESPARSE_UMFPACK_INCLUDE_DIR_OMC ${SUITESPARSE_UMFPACK_INCLUDE_DIR})
MESSAGE(STATUS "Using ${UMFPACK_H} of System")
SET(SUITESPARSE_UMFPACK_FOUND true)
ELSE(UMFPACK_H)
MESSAGE(STATUS "Could not find umfpack.h")
SET(SUITESPARSE_UMFPACK_FOUND false)
ENDIF(UMFPACK_H)

IF(UFCONFIG_H)
GET_FILENAME_COMPONENT(SUITESPARSE_UFCONFIG_INCLUDE_DIR "${UFCONFIG_H}" PATH)
IF("${SUITESPARSE_UMFPACK_INCLUDE_DIR}" STREQUAL "${SUITESPARSE_UFCONFIG_INCLUDE_DIR}")
ELSE()
SET(SUITESPARSE_UFCONFIG_INCLUDE_DIR_OMC ${SUITESPARSE_UFCONFIG_INCLUDE_DIR})
ENDIF()

MESSAGE(STATUS "Using ${UFCONFIG_H} of System")
SET(SUITESPARSE_UMFPACK_FOUND true)
ELSE(UFCONFIG_H)
MESSAGE(STATUS "Could not find UFconfig.h")
SET(SUITESPARSE_UMFPACK_FOUND false)
ENDIF(UFCONFIG_H)

IF(SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
SET(SUITESPARSE_UMFPACK_FOUND true)
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES ${SUITESPARSE_UMFPACK_LIB_DIR})
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES_OMC ${SUITESPARSE_UMFPACK_LIB_DIR})
MESSAGE(STATUS "Using ${SUITESPARSE_UMFPACK_LIB_DIR} of System")
ELSE(SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
SET(SUITESPARSE_UMFPACK_FOUND false)
MESSAGE(STATUS "Could not find umfpack libraries")
ENDIF(SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)

IF(AMD_LIB AND SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
LIST(APPEND SUITESPARSE_LIBRARIES ${AMD_LIB})
LIST(APPEND SUITESPARSE_LIBRARIES_OMC ${AMD_LIB})
ELSE(AMD_LIB AND SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
SET(SUITESPARSE_UMFPACK_FOUND false)
MESSAGE(STATUS "Could not find amd library")
ENDIF(AMD_LIB AND SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)

ENDIF(UMFPACK_H_OMC AND UFCONFIG_H_OMC AND UMFPACK_LIB_OMC AND AMD_LIB_OMC)
# This file tries to find umfpack, which is part of the suitesparse library-package. Normally the umfpack-library is build with the c-runtime, so we first try
# to use these files. The following variables are set:
#
# SUITESPARSE_UMFPACK_FOUND - True if the umfpack-library of suite sparse was found
# SUITESPARSE_UMFPACK_USE_OMC - True if the umfpack-include and libraries of OpenModelica should be used
# SUITESPARSE_UMFPACK_INCLUDE_DIR - The include folders that contain umfpack.h and UFconfig.h
# SUITESPARSE_UMFPACK_INCLUDE_DIR_OMC - This variable contains either the absolute path to the include dir, if the system version is used or the relative path to $(OMHOME) of the OMC-Version is used
# SUITESPARSE_UMFPACK_LIBRARIES - The umfpack libraries including the amd library
# SUITESPARSE_UMFPACK_LIBRARIES_OMC - This variable contains either the absolute path to umfpack libraries, if the system version is used or the relative path to $(OMHOME) of the OMC-Version is used

SET(SUITESPARSE_UMFPACK_FOUND false)
SET(SUITESPARSE_UMFPACK_USE_OMC false)


MESSAGE(STATUS "Searching for umfpack.h of OpenModelica")
FIND_FILE(UMFPACK_H_OMC umfpack.h HINTS "${CMAKE_SOURCE_DIR}/../../build/include/omc/c/suitesparse/Include" NO_DEFAULT_PATH)
FIND_FILE(UMFPACK_H umfpack.h)
FIND_FILE(UFCONFIG_H_OMC UFconfig.h HINTS "${CMAKE_SOURCE_DIR}/../../build/include/omc/c/suitesparse/Include" NO_DEFAULT_PATH)
FIND_FILE(UFCONFIG_H UFconfig.h)
FIND_LIBRARY(UMFPACK_LIB_OMC umfpack HINTS "${CMAKE_SOURCE_DIR}/../../build/lib/omc" NO_DEFAULT_PATH)
FIND_LIBRARY(UMFPACK_LIB umfpack)
FIND_LIBRARY(AMD_LIB_OMC amd HINTS "${CMAKE_SOURCE_DIR}/../../build/lib/omc" NO_DEFAULT_PATH)
FIND_LIBRARY(AMD_LIB amd)

IF(UMFPACK_H_OMC AND UFCONFIG_H_OMC AND UMFPACK_LIB_OMC AND AMD_LIB_OMC)
GET_FILENAME_COMPONENT(SUITESPARSE_UMFPACK_INCLUDE_DIR "${UMFPACK_H_OMC}" PATH)
SET(SUITESPARSE_UMFPACK_INCLUDE_DIR_OMC "$(OMHOME)/include/omc/c/suitesparse/Include")
GET_FILENAME_COMPONENT(SUITESPARSE_UFCONFIG_INCLUDE_DIR "${UFCONFIG_H_OMC}" PATH)
SET(SUITESPARSE_UFCONFIG_INCLUDE_DIR_OMC "$(OMHOME)/include/omc/c/suitesparse/Include")

FOREACH(lib ${UMFPACK_LIB_OMC})
GET_FILENAME_COMPONENT(libTrimmed "${lib}" NAME)
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES_OMC "$(OMHOME)/lib/omc/${libTrimmed}")
ENDFOREACH(lib ${UMFPACK_LIB_OMC})
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES ${UMFPACK_LIB_OMC})

FOREACH(lib ${AMD_LIB_OMC})
GET_FILENAME_COMPONENT(libTrimmed "${lib}" NAME)
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES_OMC "$(OMHOME)/lib/omc/${libTrimmed}")
ENDFOREACH(lib ${AMD_LIB_OMC})
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES ${AMD_LIB_OMC})

MESSAGE(STATUS "Using ${UMFPACK_H_OMC} of OpenModelica")
SET(SUITESPARSE_UMFPACK_FOUND true)
SET(SUITESPARSE_UMFPACK_USE_OMC true)
ELSE(UMFPACK_H_OMC AND UMFPACK_LIB_OMC)
MESSAGE(STATUS "Umfpack of OpenModelica was not found. Try to find system umfpack.")

IF(UMFPACK_H)
GET_FILENAME_COMPONENT(SUITESPARSE_UMFPACK_INCLUDE_DIR "${UMFPACK_H}" PATH)
SET(SUITESPARSE_UMFPACK_INCLUDE_DIR_OMC ${SUITESPARSE_UMFPACK_INCLUDE_DIR})
MESSAGE(STATUS "Using ${UMFPACK_H} of System")
SET(SUITESPARSE_UMFPACK_FOUND true)
ELSE(UMFPACK_H)
MESSAGE(STATUS "Could not find umfpack.h")
SET(SUITESPARSE_UMFPACK_FOUND false)
ENDIF(UMFPACK_H)

IF(UFCONFIG_H)
GET_FILENAME_COMPONENT(SUITESPARSE_UFCONFIG_INCLUDE_DIR "${UFCONFIG_H}" PATH)
IF("${SUITESPARSE_UMFPACK_INCLUDE_DIR}" STREQUAL "${SUITESPARSE_UFCONFIG_INCLUDE_DIR}")
ELSE()
SET(SUITESPARSE_UFCONFIG_INCLUDE_DIR_OMC ${SUITESPARSE_UFCONFIG_INCLUDE_DIR})
ENDIF()

MESSAGE(STATUS "Using ${UFCONFIG_H} of System")
SET(SUITESPARSE_UMFPACK_FOUND true)
ELSE(UFCONFIG_H)
MESSAGE(STATUS "Could not find UFconfig.h")
SET(SUITESPARSE_UMFPACK_FOUND false)
ENDIF(UFCONFIG_H)

IF(SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
SET(SUITESPARSE_UMFPACK_FOUND true)
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES ${SUITESPARSE_UMFPACK_LIB_DIR})
LIST(APPEND SUITESPARSE_UMFPACK_LIBRARIES_OMC ${SUITESPARSE_UMFPACK_LIB_DIR})
MESSAGE(STATUS "Using ${SUITESPARSE_UMFPACK_LIB_DIR} of System")
ELSE(SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
SET(SUITESPARSE_UMFPACK_FOUND false)
MESSAGE(STATUS "Could not find umfpack libraries")
ENDIF(SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)

IF(AMD_LIB AND SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
LIST(APPEND SUITESPARSE_LIBRARIES ${AMD_LIB})
LIST(APPEND SUITESPARSE_LIBRARIES_OMC ${AMD_LIB})
ELSE(AMD_LIB AND SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)
SET(SUITESPARSE_UMFPACK_FOUND false)
MESSAGE(STATUS "Could not find amd library")
ENDIF(AMD_LIB AND SUITESPARSE_UMFPACK_LIB_DIR AND UMFPACK_H)

ENDIF(AMD_LIB AND UMFPACK_LIB AND UMFPACK_H)
GET_FILENAME_COMPONENT(SUITESPARSE_UMFPACK_LIBS "${UMFPACK_LIB}" DIRECTORY)
ENDIF(UMFPACK_H_OMC AND UFCONFIG_H_OMC AND UMFPACK_LIB_OMC AND AMD_LIB_OMC)
42 changes: 33 additions & 9 deletions SimulationRuntime/cpp/Core/Modelica/CMakeLists.txt
Expand Up @@ -119,20 +119,42 @@ IF(WIN32)
SET(SUNDIALS_INCLUDE_DIR_ "$(OMHOME)/include/omc/cpp")
SET(LAPACK_LIBS_ "$(OMHOME)/bin")
ELSE(WIN32)
SET(Boost_LIBS_ ${Boost_LIBS})
SET(Boost_INCLUDE_ ${Boost_INCLUDE_DIR})
SET(SUNDIALS_LIBS_ ${SUNDIALS_LIBS})
SET(SUNDIALS_INCLUDE_DIR_ ${SUNDIALS_INCLUDE_DIR})
SET(LAPACK_LIBS_ ${LAPACK_LIBS})
IF("${Boost_LIBRARY_DIR}" STREQUAL "")
SET(Boost_LIBS_ ".")
ELSE()
SET(Boost_LIBS_ ${Boost_LIBRARY_DIR})
ENDIF()
IF("${Boost_INCLUDE_DIR}" STREQUAL "")
SET(Boost_INCLUDE_ ".")
ELSE()
SET(Boost_INCLUDE_ ${Boost_INCLUDE_DIR})
ENDIF()
IF("${SUNDIALS_LIBS}" STREQUAL "")
SET(SUNDIALS_LIBS_ ".")
ELSE()
SET(SUNDIALS_LIBS_ ${SUNDIALS_LIBS})
ENDIF()
IF("${SUNDIALS_INCLUDE_DIR}" STREQUAL "")
SET(SUNDIALS_INCLUDE_DIR_ ".")
ELSE()
SET(SUNDIALS_INCLUDE_DIR_ ${SUNDIALS_INCLUDE_DIR})
ENDIF()
IF("${LAPACK_LIBS}" STREQUAL "")
SET(LAPACK_LIBS_ ".")
ELSE()
SET(LAPACK_LIBS_ ${LAPACK_LIBS})
ENDIF()
ENDIF(WIN32)

SET(UMFPACK_LIBS_ "${SUITESPARSE_UMFPACK_LIBS}")

SET(Boost_LIBRARIES_NEW)
FOREACH(lib ${Boost_LIBRARIES})
GET_FILENAME_COMPONENT(libNew "${lib}" NAME_WE)
STRING(REGEX REPLACE "^lib" "" libNew ${libNew})
SET(Boost_LIBRARIES_NEW "${Boost_LIBRARIES_NEW} ${LINKER_LIB_PREFIX}${libNew}")
ENDFOREACH()
SET(Boost_LIBRARIES ${Boost_LIBRARIES_NEW})
SET(Boost_LIBRARIES_ ${Boost_LIBRARIES_NEW})

SET(SUNDIALS_LIBARIES_ "")
FOREACH(lib ${SUNDIALS_LIBRARIES})
Expand All @@ -154,9 +176,11 @@ foreach(lib ${TBB_LIBRARIES})
endforeach(lib ${TBB_LIBRARIES})

SET(UMFPACK_LIBS "")
foreach(lib ${SUITESPARSE_UMFPACK_LIBRARIES_OMC})
set(UMFPACK_LIBS "${UMFPACK_LIBS} ${lib}")
endforeach(lib ${SUITESPARSE_UMFPACK_LIBRARIES_OMC})
FOREACH(lib ${SUITESPARSE_UMFPACK_LIBRARIES_OMC})
GET_FILENAME_COMPONENT(libNew "${lib}" NAME_WE)
STRING(REGEX REPLACE "^lib" "" libNew ${libNew})
SET(UMFPACK_LIBRARIES_ "${UMFPACK_LIBRARIES_} ${LINKER_LIB_PREFIX}${libNew}")
ENDFOREACH(lib ${SUITESPARSE_UMFPACK_LIBRARIES_OMC})
#end Fix

add_precompiled_header(${ModelicaName} Include/Core/Modelica.h )
Expand Down

0 comments on commit 4f6b67a

Please sign in to comment.