[cmake-developers] [CMake 0014447]: Support $<TARGET_OBJECT:obj> as DEPENDS in add_custom_command
Mantis Bug Tracker
mantis at public.kitware.com
Sat Sep 28 14:41:17 EDT 2013
The following issue has been SUBMITTED.
======================================================================
http://public.kitware.com/Bug/view.php?id=14447
======================================================================
Reported By: Veniamin Gvozdikov
Assigned To:
======================================================================
Project: CMake
Issue ID: 14447
Category: CMake
Reproducibility: always
Severity: feature
Priority: high
Status: new
======================================================================
Date Submitted: 2013-09-28 14:41 EDT
Last Modified: 2013-09-28 14:41 EDT
======================================================================
Summary: Support $<TARGET_OBJECT:obj> as DEPENDS in
add_custom_command
Description:
Hello,
I had a strange trouble with add DEPENDS in add_custom_command by
$<TARGET_OBJECTS:obj> and I hacked that with set(cjson_obj_2
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/cjson_objs.dir/lua_cjson.c.o) in real
path to object. This is bad way for depends, please add support in new version.
set(cjson_obj)
add_library(cjson_objs OBJECT lua_cjson.c strbuf.c ${FPCONV_SOURCES})
set_target_properties(cjson_objs PROPERTIES POSITION_INDEPENDENT_CODE ON)
set(cjson_obj ${cjson_obj} $<TARGET_OBJECTS:cjson_objs>)
if(ENABLE_DTRACE AND DTRACE)
message(STATUS "DTrace found and enabled")
add_definitions(-DENABLE_DTRACE)
set(D_FILE ${PROJECT_SOURCE_DIR}/cjson_dtrace)
execute_process(
COMMAND ${DTRACE} -h -s ${D_FILE}.d -o ${D_FILE}.h
)
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
set(cjson_obj_2
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/cjson_objs.dir/lua_cjson.c.o)
set(dtrace_obj ${CMAKE_CURRENT_BINARY_DIR}/dtrace.o)
add_custom_command(OUTPUT ${dtrace_obj}
COMMAND ${DTRACE} -G -s ${D_FILE}.d -o ${dtrace_obj} ${cjson_obj_2}
DEPENDS ${cjson_obj_2}
)
set_source_files_properties(${dtrace_obj}
PROPERTIES
EXTERNAL_OBJECT true
GENERATED true
)
set(cjson_obj ${cjson_obj} ${dtrace_obj})
unset(cjson_obj_2)
unset(dtrace_obj)
unset(D_FILE)
endif()
endif()
add_library(cjson MODULE ${cjson_obj})
set_target_properties(cjson PROPERTIES PREFIX "")
target_link_libraries(cjson ${_MODULE_LINK})
Steps to Reproduce:
Try my example of cmake code.
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2013-09-28 14:41 Veniamin GvozdikovNew Issue
======================================================================
More information about the cmake-developers
mailing list