Hi,

On Tue, Nov 26, 2013 at 12:00:10PM -0500, cmake-requ...@cmake.org wrote:
> Date: Tue, 26 Nov 2013 12:13:16 +0100
> From: Marcel Loose <lo...@astron.nl>
> Subject: [CMake] TARGET property LOCATION

> Hi all,
> 
> According to the CMake documentation, the TARGET property LOCATION for a
> non-imported target is provided for compatibility with CMake 2.4 and
> below. My question is: are there any plans to deprecate this property? I
> want to know, because AFAIK, the only way to determine the full path to
> a built target is to use this property.

Yeah, a very good question. Especially since for somewhat older
(I assume that these already were a bit newer than the LOCATION deprecation 
event though!)
CMake versions I have a need for the following conditional code
(or similar to it - not 100% sure whether LOCATION is the only way to handle 
it):


# CMake add_test() has a plain signature and additionally a NAME/COMMAND 
signature
# in newer versions.
# Since I somehow managed to completely miss this,
# I filed a CMake bug report (#12589).
# Let's thus use the newer signature whenever it's supported.
set(cmake_add_test_command_signature_supported_ false)
set(cmake_version_add_test_command_signature_not_supported_last "2.7.0") # 
FIXME which version?
set(cmake_version_add_test_supports_command_signature_check 
"${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}")
if("${cmake_version_add_test_supports_command_signature_check}" VERSION_GREATER 
"${cmake_version_add_test_command_signature_not_supported_last}")
  set(cmake_add_test_command_signature_supported_ true)
endif("${cmake_version_add_test_supports_command_signature_check}" 
VERSION_GREATER 
"${cmake_version_add_test_command_signature_not_supported_last}")

if(cmake_add_test_command_signature_supported_)
  function(_ctest_add_test_sanitized _target)
    set(testname_ "${_target}")
    set(testexe_ "${_target}")
    add_test(NAME "${testname_}" COMMAND "${testexe_}")
  endfunction(_ctest_add_test_sanitized _target)
else(cmake_add_test_command_signature_supported_)
  function(_ctest_add_test_sanitized _target)
    set(testname_ "${_target}")
    # Work around incapable add_test(), by using a property which
    # is said to be ""deprecated""... (*** SIGH ***).
    get_property(test_location_ TARGET "${_target}" PROPERTY LOCATION)
    set(testexe_ "${test_location_}")
    add_test("${testname_}" "${testexe_}")
  endfunction(_ctest_add_test_sanitized _target)
endif(cmake_add_test_command_signature_supported_)


> Best regards,
> Marcel Loose.

Andreas Mohr
--

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

Reply via email to