Browse Source

Allow igl_include to be used in subprojects. (#1969)

Jérémie Dumas 3 years ago
parent
commit
3e8884d079

+ 2 - 0
CMakeLists.txt

@@ -51,6 +51,8 @@ else()
     list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake/recipes/external)
 endif()
 
+set_property(GLOBAL PROPERTY __igl_module_path ${CMAKE_MODULE_PATH})
+
 # Check for gmp + mpfr and enable cork / cgal modules accordingly
 set(LIBIGL_DEFAULT_CGAL ${LIBIGL_TOPLEVEL_PROJECT})
 set(MATLAB_ADDITIONAL_VERSIONS

+ 3 - 3
cmake/igl/igl_add_test.cmake

@@ -18,13 +18,13 @@ function(igl_add_test module_name)
 
     # Create test executable
     add_executable(test_${module_name}
-        ${PROJECT_SOURCE_DIR}/tests/main.cpp
-        ${PROJECT_SOURCE_DIR}/tests/test_common.h
+        ${libigl_SOURCE_DIR}/tests/main.cpp
+        ${libigl_SOURCE_DIR}/tests/test_common.h
         ${ARGN}
     )
 
     # Include headers
-    target_include_directories(test_${module_name} PUBLIC ${PROJECT_SOURCE_DIR}/tests)
+    target_include_directories(test_${module_name} PUBLIC ${libigl_SOURCE_DIR}/tests)
 
     # Compile definitions
     target_compile_definitions(test_${module_name} PUBLIC CATCH_CONFIG_ENABLE_BENCHMARKING)

+ 12 - 1
cmake/igl/igl_include.cmake

@@ -16,9 +16,20 @@ function(_igl_include_full prefix name force)
         message(STATUS "Forcing include of libigl module: ${name}")
     endif()
 
+    # Dependencies are linked as INTERFACE targets unless libigl is compiled as a static library
+    if(LIBIGL_USE_STATIC_LIBRARY)
+        set(IGL_SCOPE PUBLIC)
+    else()
+        set(IGL_SCOPE INTERFACE)
+    endif()
+
+    # Retrieve module path use by libigl (necessary when calling igl_include() from a subproject)
+    get_property(igl_module_path GLOBAL PROPERTY __igl_module_path)
+    set(CMAKE_MODULE_PATH ${igl_module_path})
+
     # Include igl target definition
     if(LIBIGL${prefix_uc}_WITH_${name_uc} OR ${force})
-        include(${PROJECT_SOURCE_DIR}/cmake/igl/modules/${prefix}/${name}.cmake)
+        include(${libigl_SOURCE_DIR}/cmake/igl/modules/${prefix}/${name}.cmake)
     endif()
 endfunction()
 

+ 1 - 1
cmake/igl/igl_install.cmake

@@ -40,7 +40,7 @@ function(igl_install module_name)
     # TODO: When moving module definition to their own CMakeLists.txt, we should
     # refactor this to use the folder where the target was defined (via the
     # target property SOURCE_DIR).
-    set(target_include_dir ${PROJECT_SOURCE_DIR}/include)
+    set(target_include_dir ${libigl_SOURCE_DIR}/include)
     foreach(source_path IN ITEMS ${ARGN})
         # Filter out .cpp files in "static lib" mode
         if(LIBIGL_USE_STATIC_LIBRARY)

+ 5 - 5
cmake/igl/modules/copyleft/cgal.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_copyleft_cgal)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_copyleft_cgal ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/copyleft/cgal/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/copyleft/cgal/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.cpp")
 igl_target_sources(igl_copyleft_cgal ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies
@@ -25,8 +25,8 @@ target_link_libraries(igl_copyleft_cgal ${IGL_SCOPE}
 
 # 5. Unit tests
 file(GLOB SRC_FILES
-    "${PROJECT_SOURCE_DIR}/tests/include/igl/copyleft/boolean/*.cpp"
-    "${PROJECT_SOURCE_DIR}/tests/include/igl/copyleft/cgal/*.cpp"
+    "${libigl_SOURCE_DIR}/tests/include/igl/copyleft/boolean/*.cpp"
+    "${libigl_SOURCE_DIR}/tests/include/igl/copyleft/cgal/*.cpp"
 )
 igl_add_test(igl_copyleft_cgal ${SRC_FILES})
 if(TARGET test_igl_copyleft_cgal)

+ 4 - 4
cmake/igl/modules/copyleft/comiso.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_copyleft_comiso)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_copyleft_comiso ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/copyleft/comiso/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/copyleft/comiso/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/comiso/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/comiso/*.cpp")
 igl_target_sources(igl_copyleft_comiso ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies
@@ -23,5 +23,5 @@ target_link_libraries(igl_copyleft_comiso ${IGL_SCOPE}
 )
 
 # 5. Unit tests
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/tests/include/igl/copyleft/comiso/*.cpp")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/copyleft/comiso/*.cpp")
 igl_add_test(igl_copyleft_comiso ${SRC_FILES})

+ 3 - 3
cmake/igl/modules/copyleft/core.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_copyleft_core)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_copyleft_core ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/copyleft/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/copyleft/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/*.cpp")
 igl_target_sources(igl_copyleft_core ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies

+ 4 - 4
cmake/igl/modules/copyleft/tetgen.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_copyleft_tetgen)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_copyleft_tetgen ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/copyleft/tetgen/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/copyleft/tetgen/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/tetgen/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/tetgen/*.cpp")
 igl_target_sources(igl_copyleft_tetgen ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies
@@ -23,5 +23,5 @@ target_link_libraries(igl_copyleft_tetgen ${IGL_SCOPE}
 )
 
 # 5. Unit tests
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/tests/include/igl/copyleft/tetgen/*.cpp")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/copyleft/tetgen/*.cpp")
 igl_add_test(igl_copyleft_tetgen ${SRC_FILES})

+ 4 - 4
cmake/igl/modules/core.cmake

@@ -7,13 +7,13 @@ endif()
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_core ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/*.cpp")
 igl_target_sources(igl_core ${INC_FILES} ${SRC_FILES})
 
 # 4. Install target & headers
@@ -28,5 +28,5 @@ target_link_libraries(igl_core ${IGL_SCOPE}
 )
 
 # 6. Unit tests
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/tests/include/igl/*.cpp")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/*.cpp")
 igl_add_test(igl_core ${SRC_FILES})

+ 4 - 4
cmake/igl/modules/embree.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_embree)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_embree ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/embree/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/embree/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/embree/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/embree/*.cpp")
 igl_target_sources(igl_embree ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies
@@ -21,5 +21,5 @@ target_link_libraries(igl_embree ${IGL_SCOPE}
 )
 
 # 5. Unit tests
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/tests/include/igl/embree/*.cpp")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/embree/*.cpp")
 igl_add_test(igl_embree ${SRC_FILES})

+ 3 - 3
cmake/igl/modules/glfw.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_glfw)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_glfw ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/opengl/glfw/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/opengl/glfw/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/opengl/glfw/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/opengl/glfw/*.cpp")
 igl_target_sources(igl_glfw ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies

+ 3 - 3
cmake/igl/modules/imgui.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_imgui)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_imgui ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/opengl/glfw/imgui/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/opengl/glfw/imgui/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/opengl/glfw/imgui/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/opengl/glfw/imgui/*.cpp")
 igl_target_sources(igl_imgui ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies

+ 3 - 3
cmake/igl/modules/opengl.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_opengl)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_opengl ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/opengl/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/opengl/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/opengl/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/opengl/*.cpp")
 igl_target_sources(igl_opengl ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies

+ 3 - 3
cmake/igl/modules/png.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_png)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_png ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/png/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/png/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/png/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/png/*.cpp")
 igl_target_sources(igl_png ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies

+ 4 - 4
cmake/igl/modules/predicates.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_predicates)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_predicates ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/predicates/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/predicates/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/predicates/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/predicates/*.cpp")
 igl_target_sources(igl_predicates ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies
@@ -21,5 +21,5 @@ target_link_libraries(igl_predicates ${IGL_SCOPE}
 )
 
 # 5. Unit tests
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/tests/include/igl/predicates/*.cpp")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/predicates/*.cpp")
 igl_add_test(igl_predicates ${SRC_FILES})

+ 3 - 3
cmake/igl/modules/restricted/matlab.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_restricted_matlab)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_restricted_matlab ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/matlab/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/matlab/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/matlab/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/matlab/*.cpp")
 igl_target_sources(igl_restricted_matlab ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies

+ 5 - 5
cmake/igl/modules/restricted/mosek.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_restricted_mosek)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_restricted_mosek ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/mosek/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/mosek/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/mosek/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/mosek/*.cpp")
 igl_target_sources(igl_restricted_mosek ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies
@@ -19,9 +19,9 @@ target_include_directories(igl_restricted_mosek ${IGL_SCOPE} ${MOSEK_INCLUDE_DIR
 target_link_libraries(igl_restricted_mosek ${IGL_SCOPE} igl::core ${MOSEK_LIBRARIES})
 
 # 5. Unit tests
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/tests/include/igl/mosek/*.cpp")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/mosek/*.cpp")
 igl_add_test(igl_restricted_mosek ${SRC_FILES})
 IF(APPLE)
-  INCLUDE(${PROJECT_SOURCE_DIR}/cmake/misc/OSXFixDylibReferences.cmake)
+  INCLUDE(${libigl_SOURCE_DIR}/cmake/misc/OSXFixDylibReferences.cmake)
   OSX_FIX_DYLIB_REFERENCES(test_igl_restricted_mosek "${MOSEK_LIBRARIES}")
 ENDIF()

+ 4 - 4
cmake/igl/modules/restricted/triangle.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_restricted_triangle)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_restricted_triangle ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/triangle/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/triangle/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/triangle/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/triangle/*.cpp")
 igl_target_sources(igl_restricted_triangle ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies
@@ -21,7 +21,7 @@ target_link_libraries(igl_restricted_triangle ${IGL_SCOPE}
 )
 
 # 5. Unit tests
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/tests/include/igl/triangle/*.cpp")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/triangle/*.cpp")
 igl_add_test(igl_restricted_triangle ${SRC_FILES})
 if(TARGET test_igl_restricted_triangle)
     igl_include(predicates)

+ 3 - 3
cmake/igl/modules/xml.cmake

@@ -4,13 +4,13 @@ igl_add_library(igl_xml)
 # 2. Include headers
 include(GNUInstallDirs)
 target_include_directories(igl_xml ${IGL_SCOPE}
-    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    $<BUILD_INTERFACE:${libigl_SOURCE_DIR}/include>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
 )
 
 # 3. Target sources
-file(GLOB INC_FILES "${PROJECT_SOURCE_DIR}/include/igl/xml/*.h")
-file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/include/igl/xml/*.cpp")
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/xml/*.h")
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/xml/*.cpp")
 igl_target_sources(igl_xml ${INC_FILES} ${SRC_FILES})
 
 # 4. Dependencies

+ 1 - 8
cmake/libigl.cmake

@@ -1,5 +1,5 @@
 # Sanity check for backward compatibility
-get_filename_component(PATH_X "${PROJECT_SOURCE_DIR}" REALPATH)
+get_filename_component(PATH_X "${libigl_SOURCE_DIR}" REALPATH)
 get_filename_component(PATH_Y "${CMAKE_CURRENT_LIST_DIR}/.." REALPATH)
 if(NOT PATH_X STREQUAL PATH_Y)
     message(FATAL_ERROR "You included libigl.cmake directly from your own project. This behavior "
@@ -8,13 +8,6 @@ if(NOT PATH_X STREQUAL PATH_Y)
                         "more information: https://github.com/libigl/libigl-example-project/")
 endif()
 
-# Dependencies are linked as INTERFACE targets unless libigl is compiled as a static library
-if(LIBIGL_USE_STATIC_LIBRARY)
-    set(IGL_SCOPE PUBLIC)
-else()
-    set(IGL_SCOPE INTERFACE)
-endif()
-
 # Global options
 include(igl_windows)