diff --git a/CMakeLists.txt b/CMakeLists.txt index 07fcb62355..9a63b169f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,12 +41,23 @@ elseif(MSVC) set(BUILD_SHARED_LIBS OFF) endif() +# When incorporating ortools in a CMake Project, then only C++ library will be built. +# Consequently Python, Java and C# wrapper won't be built. +if("^${CMAKE_SOURCE_DIR}$" STREQUAL "^${PROJECT_SOURCE_DIR}$") + set(ORTOOLS_IS_SUBPROJECT FALSE) +else() + set(ORTOOLS_IS_SUBPROJECT TRUE) +endif() + include(CMakeDependentOption) option(BUILD_DEPS "Force re-build of all dependencies" ON) option(BUILD_CXX "Build C++ library" ON) -CMAKE_DEPENDENT_OPTION(BUILD_PYTHON "Build Python Library" ON "BUILD_CXX" OFF) -CMAKE_DEPENDENT_OPTION(BUILD_JAVA "Build Java Library" OFF "BUILD_CXX" OFF) -CMAKE_DEPENDENT_OPTION(BUILD_CSHARP "Build CSharp Library" OFF "BUILD_CXX" OFF) +CMAKE_DEPENDENT_OPTION(BUILD_PYTHON "Build Python Library" ON + "BUILD_CXX; NOT ORTOOLS_IS_SUBPROJECT" OFF) +CMAKE_DEPENDENT_OPTION(BUILD_JAVA "Build Java Library" OFF + "BUILD_CXX; NOT ORTOOLS_IS_SUBPROJECT" OFF) +CMAKE_DEPENDENT_OPTION(BUILD_CSHARP "Build CSharp Library" OFF + "BUILD_CXX; NOT ORTOOLS_IS_SUBPROJECT" OFF) message(STATUS "Build all dependencies: ${BUILD_DEPS}") message(STATUS "Build CXX library: ${BUILD_CXX}")