Hi list,

I'm on my wits end with include_external_msproject, add_dependencies and build 
type.

This is the situation: I have a CMake project with an external static library A 
which is included in the build via include_external_msproject, a static library 
B and a binary C.

B is depemding on A
C is depending on B

My upper (above the directories for B and C) CMakeLists.txt looks like this:

include_external_msproject(A ${CMAKE_SOURCE_DIR}/A.vcxproj)

The CMakeLists.txt for B has these (and other) parts:

cmake_policy(GET CMP0046 cmp)
if (NOT cmp STREQUAL "OLD")
    cmake_policy(SET CMP0046 OLD)
endif ()
add_dependencies (B A)
cmake_policy(SET CMP0046 NEW)
target_link_libraries(B ${CMAKE_BINARY_DIR}/Win32/${CMAKE_BUILD_TYPE}/A.lib)

The CMakeLists.txt for C has these (and other) parts:

target_link_libraries(C B)

In reality there are othe libs too. I reduced complexity to make it easier to 
understand the scenario.

The stuff above works fine for CMAKE_BUILD_TYPE=Debug, meaning in Visual Studio 
2013 in the project build dependencies for B I see that it's depending on A and 
so the build order is A first then B. The project build dependencies for C say 
that the binary is depending on B and A and the build oreder is A first, then B 
and then C.

Perfect.

But with CMAKE_BUILD_TYPE=Release I see that B is depending on A, but C is ONLY 
depending on B, but NOT on A.

Can anybody explain what's going on? Any hint would be greatly appreciated.

Thank you
Axel

PS: I know that setting policies to OLD isn't the nice way, but I don't know of 
any other solution the depend on a external Visual Studio project.

-- 

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

Reply via email to