[CMake] Question about INSTALL_COMMAND for ExternalProject_Add()

Workbench@gmx.at workbench at gmx.at
Sun Mar 10 07:38:06 EDT 2019


I came a step forward, now it looks like this:

include(ExternalProject)
ExternalProject_Add(glfw3
    PREFIX ${CMAKE_BINARY_DIR}/glfw-log
    GIT_REPOSITORY https://github.com/glfw/glfw.git
    GIT_TAG 3.2.1
    SOURCE_DIR ${CMAKE_BINARY_DIR}/glfw
    UPDATE_COMMAND ""
    PATCH_COMMAND ""
    INSTALL_DIR ${CMAKE_BINARY_DIR}/glfw
    CMAKE_ARGS -DCMAKE_BUILD_TYPE:String={CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX=${LIB_DIR}/glfw
)

ExternalProject_Add(glad
    PREFIX ${CMAKE_BINARY_DIR}/glad-log
    GIT_REPOSITORY https://github.com/Dav1dde/glad.git
    GIT_TAG v0.1.29
    SOURCE_DIR ${CMAKE_BINARY_DIR}/glad
    UPDATE_COMMAND ""
    PATCH_COMMAND ""
    INSTALL_DIR ${CMAKE_BINARY_DIR}/glad
    CMAKE_ARGS -DCMAKE_BUILD_TYPE:String=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX=${LIB_DIR}/glad -DGLAD_EXPORT=True
-DGLAD_INSTALL=True
    CONFIGURE_COMMAND ${CMAKE_BUILD_DIR}/
    INSTALL_COMMAND
        COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_BINARY_DIR}/glad-log/src/glad-build/libglad.a
${LIB_DIR}/glad/lib/libglad.a
        COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_BINARY_DIR}/glad-log/src/glad-build/include ${LIB_DIR}/glad/
)
find_package(glad REQUIRED)
find_package(glfw3 REQUIRED)
add_executable(Test01 source/test/Test01.cpp)
target_link_libraries(Test01 PRIVATE glad glfw3)

But now i've the following problem, i get the error message:

CMake Error at CMakeLists.txt:95 (find_package):
  By not providing "Findglad.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "glad", but
  CMake did not find one.

  Could not find a package configuration file provided by "glad" with any of
  the following names:

    gladConfig.cmake
    glad-config.cmake

  Add the installation prefix of "glad" to CMAKE_PREFIX_PATH or set
  "glad_DIR" to a directory containing one of the above files.  If "glad"
  provides a separate development package or SDK, be sure it has been
  installed.

The problem is gladConfig.cmake is created after the configure
procedure, how can i solve this issue ??


best regards!




On 10.03.19 11:44, Workbench at gmx.at wrote:
>
> Now i've managed to create the right INSTALL_COMMAND but i don't know
> how to link with my executable. i tried
>
> add_executable(MyApp ${src})
>
> target_link_libraries(MyApp STATIC GLFW GLAD)
>
> and i get the following error message:
>
> CMake Error at CMakeLists.txt:96 (target_link_libraries):
>   Target "LIBGLAD" of type UTILITY may not be linked into another target.
>   One may link only to INTERFACE, OBJECT, STATIC or SHARED libraries,
> or to
>   executables with the ENABLE_EXPORTS property set.
>
>
> CMake Error at CMakeLists.txt:96 (target_link_libraries):
>   Target "LIBGLFW" of type UTILITY may not be linked into another target.
>   One may link only to INTERFACE, OBJECT, STATIC or SHARED libraries,
> or to
>   executables with the ENABLE_EXPORTS property set.
>
>
>
> target_link_libraries(M
>
> On 10.03.19 10:40, Workbench at gmx.at wrote:
>> Hi everyone,
>>
>> i've managed to use ExternalProject_Add to install GLFW but i have
>> troubles with glad...
>>
>> Here is my code for GLFW wich is working:
>>
>> include(ExternalProject)
>> ExternalProject_Add(GLFW
>>     PREFIX ${LIBDIR}/${CMAKE_BUILD_TYPE}/glfw-log
>>     GIT_REPOSITORY https://github.com/glfw/glfw.git
>>     GIT_TAG 3.2.1
>>     SOURCE_DIR ${CMAKE_BINARY_DIR}/glfw
>>     UPDATE_COMMAND ""
>>     PATCH_COMMAND ""
>>     INSTALL_DIR ${LIBDIR}/glfw
>>     CMAKE_ARGS -DCMAKE_BUILD_TYPE:String={CMAKE_BUILD_TYPE}
>> -DCMAKE_INSTALL_PREFIX=${LIB_DIR}/glfw
>> )
>>
>> Now i tried the same with GLAD but i had to add INSTALL_COMMAND to make
>> it work but i've no clue what i should enter there to install it the
>> same way i did with glfw..
>>
>> ExternalProject_Add(GLAD
>>     PREFIX ${LIBDIR}/${CMAKE_BUILD_TYPE}/glad-log
>>     GIT_REPOSITORY https://github.com/Dav1dde/glad.git
>>     GIT_TAG v0.1.29
>>     SOURCE_DIR ${CMAKE_BINARY_DIR}/glad
>>     UPDATE_COMMAND ""
>>     PATCH_COMMAND ""
>>     INSTALL_DIR ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/glad
>>     CMAKE_ARGS -DCMAKE_BUILD_TYPE:String=${CMAKE_BUILD_TYPE}
>> -DCMAKE_INSTALL_PREFIX=${LIB_DIR}/glad
>>     INSTALL_COMMAND "??"
>> )
>>
>>
>> I hope someone can help me, i'm a bit clueless about this.
>>
>>
>> best regards!
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190310/dd9f9925/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pEpkey.asc
Type: application/pgp-keys
Size: 2452 bytes
Desc: not available
URL: <https://cmake.org/pipermail/cmake/attachments/20190310/dd9f9925/attachment-0001.key>


More information about the CMake mailing list