From 7f7b5f6bc43658c769a4d4bd32c2268e19f565cd Mon Sep 17 00:00:00 2001 From: Mahder Gebremedhin Date: Sun, 15 Nov 2020 12:42:09 +0100 Subject: [PATCH] Make building lp_solve optional. - lp_solve needs bison and flex. These are not available in our build-dep packages or docker files we distribute. So make this optional for now. --- OMCompiler/.cmake/omc_utils.cmake | 7 ++++++- OMCompiler/3rdParty | 2 +- OMCompiler/CMakeLists.txt | 6 +++++- OMCompiler/Compiler/runtime/CMakeLists.txt | 14 ++++++++++++-- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/OMCompiler/.cmake/omc_utils.cmake b/OMCompiler/.cmake/omc_utils.cmake index 081d70a8f33..4da25205c9e 100644 --- a/OMCompiler/.cmake/omc_utils.cmake +++ b/OMCompiler/.cmake/omc_utils.cmake @@ -11,4 +11,9 @@ macro(omc_add_subdirectory var) list(APPEND CMAKE_MESSAGE_CONTEXT ${var}) add_subdirectory(${var}) list(POP_BACK CMAKE_MESSAGE_CONTEXT) -endmacro(omc_add_subdirectory) \ No newline at end of file +endmacro(omc_add_subdirectory) + +macro(omc_option var help_text value) + option(${var} ${help_text} ${value}) + omc_add_to_report(${var}) +endmacro(omc_option) diff --git a/OMCompiler/3rdParty b/OMCompiler/3rdParty index e324efaf484..427e365768c 160000 --- a/OMCompiler/3rdParty +++ b/OMCompiler/3rdParty @@ -1 +1 @@ -Subproject commit e324efaf4844bed696b45430f849a96139d8ab2b +Subproject commit 427e365768c2377494baeca0a7b32096b1526a80 diff --git a/OMCompiler/CMakeLists.txt b/OMCompiler/CMakeLists.txt index cc7e5f3ef58..7a13228a126 100644 --- a/OMCompiler/CMakeLists.txt +++ b/OMCompiler/CMakeLists.txt @@ -61,7 +61,6 @@ option(OMC_USE_CCACHE "Use ccache to speedup compilations." ON) omc_add_to_report(OMC_USE_CCACHE) - find_program(CCACHE_PROGRAM ccache) if(OMC_USE_CCACHE AND CCACHE_PROGRAM) message(STATUS "Found ccache. It will be used for compilation C/C++ sources") @@ -72,6 +71,11 @@ endif() +omc_option(OMC_USE_LPSOLVE "Should we use lpsolve." OFF) +omc_option(OMC_BUILD_LPSOLVE "Should we build our own 3rdParty/lpsolve." OFF) + + + omc_add_subdirectory(3rdParty) diff --git a/OMCompiler/Compiler/runtime/CMakeLists.txt b/OMCompiler/Compiler/runtime/CMakeLists.txt index f01dda60086..6b2982eb378 100644 --- a/OMCompiler/Compiler/runtime/CMakeLists.txt +++ b/OMCompiler/Compiler/runtime/CMakeLists.txt @@ -63,10 +63,15 @@ target_link_libraries(omcruntime PUBLIC ${Intl_LIBRARIES}) target_link_libraries(omcruntime PUBLIC Iconv::Iconv) target_link_libraries(omcruntime PUBLIC ${LAPACK_LIBRARIES}) target_link_libraries(omcruntime PUBLIC omc::simrt::runtime) -target_link_libraries(omcruntime PUBLIC omc::3rd::lpsolve55) target_link_libraries(omcruntime PUBLIC omc::3rd::libzmq) target_link_libraries(omcruntime PUBLIC omc::3rd::FMIL::minizip) # We use the minizip lib from 3rdParty/FMIL +if(OMC_USE_LPSOLVE) + target_link_libraries(omcruntime PUBLIC omc::3rd::lpsolve55) +else() + target_compile_definitions(omcruntime PRIVATE NO_LPLIB) +endif() + target_include_directories(omcruntime PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(omcruntime PRIVATE ${OMCompiler_SOURCE_DIR}) # for revision.h @@ -125,10 +130,15 @@ target_link_libraries(omcruntime-boot PUBLIC ${Intl_LIBRARIES}) target_link_libraries(omcruntime-boot PUBLIC Iconv::Iconv) target_link_libraries(omcruntime-boot PUBLIC ${LAPACK_LIBRARIES}) target_link_libraries(omcruntime-boot PUBLIC omc::simrt::runtime) -target_link_libraries(omcruntime-boot PUBLIC omc::3rd::lpsolve55) target_link_libraries(omcruntime-boot PUBLIC omc::3rd::libzmq) target_link_libraries(omcruntime-boot PUBLIC omc::3rd::FMIL::minizip) # We use the minizip lib from 3rdParty/FMIL +if(OMC_USE_LPSOLVE) + target_link_libraries(omcruntime-boot PUBLIC omc::3rd::lpsolve55) +else() + target_compile_definitions(omcruntime-boot PRIVATE NO_LPLIB) +endif() + target_include_directories(omcruntime-boot PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(omcruntime-boot PRIVATE ${OMCompiler_SOURCE_DIR}) # for revision.h