Re: Re: [SOLVED] Re: Installing generated files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday 01 of June 2020 10:05:23 Slávek Banko wrote:
> On Monday 01 of June 2020 09:40:06 deloptes wrote:
> > Slávek Banko wrote:
> > > file( GLOB _generated_headers ${CMAKE_CURRENT_BINARY_DIR}/*.h )
> > > install(
> > > FILES ${_generated_headers}
> > > DESTINATION ${INCLUDE_INSTALL_DIR}/<app>/
> > > )
> >
> > It looks indeed much better, but it did not work :(. It did not
> > install anything. I have to check what is file(GLOB ....)
>
> oh, sure, I didn't realize - the file( GLOB ... ) is processed during
> the configuration, when the header files are not yet present - that's
> why it can't work this way. I'll think again...
>
> Cheers

Well, although it's not as nice as the previous recommendations, it seems 
to work as needed.  Keep in mind that it is necessary to place it after 
all add_subdirectory(...) of the appropriate folder to exclude any 
possible subfolders.


file( GLOB _bin_dirs RELATIVE ${CMAKE_CURRENT_BINARY_DIR}
      ${CMAKE_CURRENT_BINARY_DIR}/* )
unset( _exclude_dirs )
foreach( _dir IN LISTS _bin_dirs )
  if( IS_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_dir} )
    list( APPEND _exclude_dirs PATTERN ${_dir} EXCLUDE )
  endif()
endforeach()

install(
    DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/
    DESTINATION ${INCLUDE_INSTALL_DIR}/<generated>
    FILES_MATCHING PATTERN PATTERN "*.h"
    ${_exclude_dirs}
)


Note: You will notice a slash after the folder name listed for DIRECTORY - 
this is to install only the files in this folder, not the folder itself.

Cheers
-- 
Slávek

Attachment: signature.asc
Description: This is a digitally signed message part.


[Index of Archives]     [Trinity Users]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [KDE]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]     [Trinity Desktop Environment]

  Powered by Linux