我試圖在CMake中添加一個生成一些文件的自定義生成步驟。我還沒有找到它的工作原理。在CMake中添加自定義生成步驟
我有一個項目來源,頭文件&必須由ODB爲C++生成實現文件。 ODB將類頭文件作爲參數並生成我想在我的項目中使用的源文件。
現在,我已經在我的CMakeLists.txt以下命令:
add_custom_command(TARGET ${PROJECT_NAME}
PRE_BUILD
COMMAND odb -o /home/david/dev/ --std c++11 -I/home/david/dev/ -d sqlite --generate- query --generate-schema ${PROMOTER_LIB_PREFIX}/entities/person.hpp
DEPENDS ${PROJECT_NAME}
VERBATIM
)
對於文件person.hpp
ODB應該產生person-odb.hxx
,person-odb.cxx
,person-odb.ixx
但我特地使用不會產生任何東西CMake的命令。在終端這個命令工作正常。
我在做什麼錯?
編輯:這個問題可以通過添加以下行來解決:
set(FAKE_TARGET fakeTarget)
add_custom_target(fakeTarget
odb -o /home/david/dev/ --std c++11 -I/home/david/dev/ -d sqlite --generate-query --generate-schema ${PROMOTER_LIB_PREFIX}/entities/person.hpp
)
add_dependencies(${PROJECT_NAME} ${FAKE_TARGET})
當我刪除'DEPENDS'和'VERBATIM'時,它仍然不起作用。 –
@DavidBulczak看看我的編輯。我在工作中使用VS,這就是爲什麼它在爲我工作。 –
好的。謝謝。我使用gcc/make和其他GNU工具。 有沒有其他方法可以在CMake中添加自定義預構建步驟? –