I have a project that I'm updating from Cmake 3.5 to 3.12.

In the project, I have UI libraries that use other libraries, both of which
use Qt 5.6.
The lowest-level library uses AUTOUIC and I see the headers are generated
in the new lib_autogen/include_BUILD_CONFIG directory.

When my higher level library tries to use the lower level library, I get
the error that it can't find the auto-generated headers. It only seems to
have trouble finding about six of two dozen ui_***.h files.

How can I get my lower level libraries to include the generated header
files so they're available to the higher level library that's using it?

I'm using
cmake 3.12
Qt 5.6
Visual Studio 2015

I tried creating a work-around where in the CMakeLists.txt of my lowest
level directory I add

# CMake 10+ has a bug where automoc header files aren't found
SET(COMPONENTS_UIC_HDRS_DIR
"${CMAKE_CURRENT_BINARY_DIR}/ComponentsLib_autogen/include_${
*CMAKE_BUILD_TYPE*}")
message("** COMPONENTS AUTOUIC autogen dir: ${COMPONENTS_UIC_HDRS_DIR}")
*target_include_directories*(ComponentsLib INTERFACE
${COMPONENTS_UIC_HDRS_DIR})

but of course the CMAKE_BUILD_TYPE isn't available to CMake at this time.
I'd have to move the headers into a place common to the various
(Debug/Release) configurations or something.

Thanks!
-Jim
-- 

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:
https://cmake.org/mailman/listinfo/cmake

Reply via email to