###
set(PREFIX enco-basic-test-000)
set(GENERATED_CPP ${PREFIX}.generated.cpp)
+set(SOURCE_TARGET ${PREFIX}-src)
+set(LIB_TARGET ${PREFIX}-lib)
add_library(${PREFIX}-frontend SHARED enco.test.cpp)
target_link_libraries(${PREFIX}-frontend enco_intf_cmdline)
target_link_libraries(${PREFIX}-frontend enco_intf_frontend)
-add_custom_command(OUTPUT ${GENERATED_CPP}
- DEPENDS enco-cli
- COMMAND $<TARGET_FILE:enco-cli> --frontend $<TARGET_FILE:${PREFIX}-frontend> > ${GENERATED_CPP})
-add_library(${${PREFIX}}-lib SHARED ${GENERATED_CPP})
+# NOTE BYPRODUCTS are not specified in order to enforce source code generation
+add_custom_target(${SOURCE_TARGET}
+ ALL $<TARGET_FILE:enco-cli> --frontend $<TARGET_FILE:${PREFIX}-frontend> > ${GENERATED_CPP}
+ DEPENDS enco-cli ${PREFIX}-frontend)
+set_source_files_properties(${GENERATED_CPP} PROPERTIES GENERATED TRUE)
+add_library(${LIB_TARGET} SHARED ${GENERATED_CPP})
+add_dependencies(${LIB_TARGET} ${SOURCE_TARGET})