mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
Since 3.19, CMake generates a deprecation warning when using a minimum version less than 2.8.12. This eliminates those warnings generated during tests, which are typically hidden from the user and developer but are being generated nonetheless.
46 lines
1.8 KiB
CMake
46 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 2.8.12)
|
|
project(LinkDirectory C)
|
|
|
|
# Put the subproject source tree in our build tree so it can refer to
|
|
# link directories relative to its source.
|
|
if(NOT "${LinkDirectory_SOURCE_DIR}" STREQUAL "${LinkDirectory_BINARY_DIR}")
|
|
file(COPY External/ DESTINATION External PATTERN CVS EXCLUDE)
|
|
endif()
|
|
|
|
# Build a library into the subproject source tree.
|
|
add_library(mylibA STATIC mylibA.c)
|
|
set_property(TARGET mylibA PROPERTY
|
|
ARCHIVE_OUTPUT_DIRECTORY "${LinkDirectory_BINARY_DIR}/External/lib")
|
|
|
|
# Build a library into our build tree relative to the subproject build tree.
|
|
add_library(mylibB STATIC mylibB.c)
|
|
set_property(TARGET mylibB PROPERTY
|
|
ARCHIVE_OUTPUT_DIRECTORY "${LinkDirectory_BINARY_DIR}/lib")
|
|
|
|
# Create a custom target to drive the subproject build.
|
|
include(ExternalProject)
|
|
ExternalProject_Add(ExternalTarget
|
|
SOURCE_DIR "${LinkDirectory_BINARY_DIR}/External"
|
|
BINARY_DIR "${LinkDirectory_BINARY_DIR}/External-build"
|
|
CMAKE_ARGS "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${LinkDirectory_BINARY_DIR}/bin"
|
|
PREFIX "${LinkDirectory_BINARY_DIR}/External-build/root"
|
|
DOWNLOAD_COMMAND ""
|
|
INSTALL_COMMAND ""
|
|
)
|
|
|
|
# Add a step to wipe out the subproject executable after our libraries
|
|
# change. This is needed because the subproject cannot depend on them
|
|
# directly because it does not know the full paths to the libraries.
|
|
# (The purpose of this test is to check that link_directories works.)
|
|
ExternalProject_Add_Step(ExternalTarget cleanup
|
|
COMMAND ${CMAKE_COMMAND} -E rm -rf ${LinkDirectory_BINARY_DIR}/bin
|
|
DEPENDEES download
|
|
DEPENDERS configure
|
|
DEPENDS mylibA mylibB
|
|
"${LinkDirectory_BINARY_DIR}/External/CMakeLists.txt"
|
|
"${LinkDirectory_BINARY_DIR}/External/myexe.c"
|
|
)
|
|
|
|
# Make the subproject build after our targets.
|
|
add_dependencies(ExternalTarget mylibA mylibB)
|