Kaynağa Gözat

Set default options based on toplevel project. (#940)

* Enable options based on toplevel CMake call.

* Update CMakeLists.txt

* Update CMakeLists.txt

* Update CMakeLists.txt

* Update CMakeLists.txt


Former-commit-id: 86d3564a14cd9cfcbe50c6dc790424bdab5dc939
Jérémie Dumas 6 yıl önce
ebeveyn
işleme
d3dd83f11b
4 değiştirilmiş dosya ile 32 ekleme ve 32 silme
  1. 13 10
      CMakeLists.txt
  2. 4 4
      python/CMakeLists.txt
  3. 7 8
      tests/CMakeLists.txt
  4. 8 10
      tutorial/CMakeLists.txt

+ 13 - 10
CMakeLists.txt

@@ -1,20 +1,25 @@
 cmake_minimum_required(VERSION 3.1)
 project(libigl)
 
+# Detects whether this is a top-level project
+if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+	set(LIBIGL_TOPLEVEL_PROJECT ON)
+else()
+	set(LIBIGL_TOPLEVEL_PROJECT OFF)
+endif()
 
-option(LIBIGL_BUILD_TESTS      "Build libigl unit test"        OFF)
-option(LIBIGL_BUILD_TUTORIALS  "Build libigl tutorial"         OFF)
-option(LIBIGL_BUILD_PYTHON     "Build libigl python bindings"  OFF)
-
+# Build tests, tutorials and python bindings
+option(LIBIGL_BUILD_TESTS      "Build libigl unit test"        ${LIBIGL_TOPLEVEL_PROJECT})
+option(LIBIGL_BUILD_TUTORIALS  "Build libigl tutorial"         ${LIBIGL_TOPLEVEL_PROJECT})
+option(LIBIGL_BUILD_PYTHON     "Build libigl python bindings"  ${LIBIGL_TOPLEVEL_PROJECT})
 
-# USE_STATIC_LIBRARY speeds up the generation of multiple binaries, 
+# USE_STATIC_LIBRARY speeds up the generation of multiple binaries,
 # at the cost of a longer initial compilation time
 # (by default, static build is off since libigl is a header-only library)
 option(LIBIGL_USE_STATIC_LIBRARY "Use LibIGL as static library" ON)
 
 # All dependencies that are downloaded as cmake projects and tested on the auto-builds are ON
 # (by default, all build options are off)
-option(LIBIGL_WITH_CGAL              "Use CGAL"                     ON)
 option(LIBIGL_WITH_COMISO            "Use CoMiso"                   ON)
 option(LIBIGL_WITH_EMBREE            "Use Embree"                   ON)
 option(LIBIGL_WITH_OPENGL            "Use OpenGL"                   ON)
@@ -28,10 +33,8 @@ option(LIBIGL_WITH_XML               "Use XML"                      ON)
 option(LIBIGL_WITH_PYTHON            "Use Python"                   ${LIBIGL_BUILD_PYTHON})
 ### End
 
-# These ensure that lib*.a are placed in the directory where `cmake
-# ../optional/` was issued.
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})		
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})		
 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
 
 ### conditionally compile certain modules depending on libraries found on the system

+ 4 - 4
python/CMakeLists.txt

@@ -23,10 +23,10 @@ if(UNIX)
   endif()
 endif()
 
-## libigl
-if(NOT TARGET igl::core)
-  list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/../cmake")
-  include(libigl)
+## libigl		
+if(NOT TARGET igl::core)		
+  list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/../cmake")		
+  include(libigl)		
 endif()
 
 ## include pybind

+ 7 - 8
tests/CMakeLists.txt

@@ -1,14 +1,13 @@
 cmake_minimum_required(VERSION 3.1)
 project(libigl_tests)
 
-### conditionally compile certain modules depending on libraries found on the system
-list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake)
-
-### Adding libIGL: choose the path to your local copy libIGL
-if(NOT TARGET igl_common)
-  include(libigl)
-else()
-  include(LibiglDownloadExternal)
+list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake)		
+		
+### Adding libIGL: choose the path to your local copy libIGL		
+if(NOT TARGET igl_common)		
+  include(libigl)		
+else()		
+  include(LibiglDownloadExternal)		
 endif()
 
 ### Download data

+ 8 - 10
tutorial/CMakeLists.txt

@@ -1,16 +1,14 @@
 cmake_minimum_required(VERSION 3.1)
 project(libigl_tutorials)
-message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
-message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
 
-### conditionally compile certain modules depending on libraries found on the system
-list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake)
-
-### Adding libIGL: choose the path to your local copy libIGL
-if(NOT TARGET igl_common)
-  include(libigl)
-else()
-  include(LibiglDownloadExternal)
+### conditionally compile certain modules depending on libraries found on the system		
+list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../cmake)		
+	
+### Adding libIGL: choose the path to your local copy libIGL		
+if(NOT TARGET igl_common)		
+  include(libigl)		
+else()		
+  include(LibiglDownloadExternal)		
 endif()
 
 ### Download data