On 12/02/2010 02:22 PM, luxInteg wrote: > 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
If you only want it to be set for these two files, do set_source_files_properties( ${CMAKE_CURRENT_BINARY_DIR}/fileC.cpp ${CMAKE_CURRENT_BINARY_DIR}/fileD.cpp PROPERTIES COMPILE_FLAGS INT) i.e. you can set it for both files in the same call, and you leave away the D. The D is only a compiler flag when using -DINT, the actual symbol is INT. If it is OK to set INT for all source files in this and its child directories, it's simpler to do add_definitions(-DINT) Michael _______________________________________________ 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