On Thursday 02 December 2010 10:10:59 Michael Wild wrote:
>
> No, you can't. CMake simply concatenates the strings when you do
> ${CMAKE_SOURCE_DIR}/${sipED-SRS}. You'll have to put CMAKE_BINARY_DIR
> (or equivalent, like CMAKE_CURRENT_BINARY_DIR) in front of every element
> in sipED-SRCS. A few additional issues:
>
> - never EVER create output in the source tree, only in the build tree.
> This is an absolute taboo and is verboten.
>
> - it is a bad idea to use the hyphen (-) in a variable name. Replace it
> by an underscore (_).
>
> - don't use "sip" directly in your COMMAND, use FIND_EXECUTABLE first
> like I showed in my example. This way the user of your project can
> override the sip executable that is being used by specifying
> SIP_EXECUTABLE.
>
> - use better variable names. "sip_generator" sounds like it refers to a
> program. Better use "SIP_SOURCES" or similar. Also, sipED-SRS is pretty
> bad, make it SIP_OUTPUT. People reading the code (even yourself in a
> half-years time) will be very thankful to you...
>
thanks for the clarification
Now supposing I want to set a preprosessor -DINT for filC.cpp and FileD.cpp is
it done as below (dotted lines) ?
add_custom_command(OUTPUT
${CMAKE_CURRENT_BINARY_DIR}/fileC.cpp
${CMAKE_CURRENT_BINARY_DIR}/fileD.cpp
COMMAND ${SIP_EXECUTABLE} -c ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/fileA.sip
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/fileA.sip
COMMENT "Processing ${CMAKE_CURRENT_SOURCE_DIR}/fileA.sip"
VERBATIM)
#---------------------------
SET_SOURCE_FILES_PROPERTIES ${CMAKE_CURRENT_BINARY_DIR}/fileC.cpp PROPERTIES
COMPILE_DEFINITIONS DINT )
SET_SOURCE_FILES_PROPERTIES ${CMAKE_CURRENT_BINARY_DIR}/fileD.cpp PROPERTIES
COMPILE_DEFINITIONS DINT )
#-------------------------
then
add_library(myPythonExtension SHARED
${CMAKE_CURRENT_BINARY_DIR}/fileC.cpp
${CMAKE_CURRENT_BINARY_DIR}/fileD.cpp)
sincerely
luxInteg
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake