>> One possibility is the often mentioned superbuild That is a tempting and I started to go down that route - however, I ran into a problem where my project (which is now also built using ExternalProject_Add) does not have access to the CMake variables. Is the only solution to pass them through the CMAKE_ARGS variable in ExternalProject_Add?
On Mon, Jan 9, 2017 at 12:07 AM Hendrik Sattler <p...@hendrik-sattler.de> wrote: One possibility is the often mentioned superbuild, another is not using find_library() but setting the variables with the library file paths manually (that's static info anyway). Am 8. Januar 2017 22:49:52 MEZ schrieb Saad Khattak <saadrus...@gmail.com>: >Hello, > >I have an external project glfw that I added to my project like this: > >========== >include(ExternalProject) >ExternalProject_Add(glfw > GIT_REPOSITORY "https://github.com/glfw/glfw.git" > GIT_TAG "master" > > SOURCE_DIR "${CMAKE_SOURCE_DIR}/dep/glfw" > CMAKE_ARGS -DGLFW_BUILD_DOCS=OFF -DGLFW_BUILD_TESTS=OFF >-DGLFW_BUILD_EXAMPLES=OFF >-DCMAKE_INSTALL_PREFIX=${CMAKE_SOURCE_DIR}/install/glfw/ >-DCMAKE_DEBUG_POSTFIX=_d > > TEST_COMMAND "" > ) >set(GLFW_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/install/glfw/include/") >set(GLFW_LIBRARY_DIR "${CMAKE_SOURCE_DIR}/install/glfw/lib/") >========== > >Then I include it in my project like so: > >========== >find_library(GLFW_LIB_D glfw3_d ${GLFW_LIBRARY_DIR}) >find_library(GLFW_LIB glfw3 ${GLFW_LIBRARY_DIR}) > >include_directories(${GLFW_INCLUDE_DIR}) > >add_executable(vk_test > src/vulkan_test.cpp > ) >target_link_libraries(vk_test debug ${GLFW_LIB_D} optimized >${GLFW_LIB}) >add_dependencies(vk_test glfw) >========== > >As you can see, I depend on the libraries compiled by the external >project >glfw. Unfortunately, when I first configure the project, CMake >complains >that it cannot find the libraries specified by ${GLFW_LIB_D} and >${GLFW_LIB} variables. > >Of course, this is because CMake did not begin cloning, configuring and >building the glfw project. That only happens AFTER my project has been >configured and starts building. This becomes a chicken and the egg >problem. > >Currently, my solution is to add dummy .lib files so that I can at >least >configure and generate my project. My question is, am I approaching >this >problem in the wrong way? If yes, what is the correct way to add a >dependency to an external project and have it clone/configure/build >BEFORE >the "find_library" call? -- Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake