Hi all, I have problems with the following cmake build script:
find_program(CCP_EXECUTABLE cpp REQUIRED HINTS /opt/local/bin) find_program(ASN1C_EXECUTABLE asn1c REQUIRED HINTS /opt/local/bin) if(ASN1C_EXECUTABLE AND CCP_EXECUTABLE) set(ASN1C_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}") ### collect the list of generated source ###TBD### aux_source_directory(${ASN1C_OUTPUT_DIR} ASN1_SOURCES) ### message(„${ASN1_SOURCES}“) set(ASN1_SOURCES converter-sample.c pdu_collection.c) ### Add a target with no output so it will always be built. add_custom_target(regen COMMAND ${CCP_EXECUTABLE} -undef -P -include ${CMAKE_CURRENT_SOURCE_DIR}/CertificateProfile.asn1 ${CMAKE_CURRENT_SOURCE_DIR}/EncryptedBsc.asn1 > _sample.asn1 WORKING_DIRECTORY ${ASN1C_OUTPUT_DIR} VERBATIM) ### adding a custom command to produce an output. add_custom_target(OUTPUT ${ASN1_SOURCES} COMMAND ${ASN1C_EXECUTABLE} -S ${CMAKE_CURRENT_SOURCE_DIR}/../../skeletons -pdu=all ${ASN1C_OUTPUT_DIR}/_sample.asn1 COMMAND astyle *.c *.h DEPENDS ${ASN1C_OUTPUT_DIR}/_sample.asn1 WORKING_DIRECTORY ${ASN1C_OUTPUT_DIR} VERBATIM) set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${ASN1C_OUTPUT_DIR}/_sample.asn1 ${ASN1_SOURCES}) # Tell CMake to build a library from this source files add_library(sample-asn1 ${ASN1_SOURCES}) message ("asn1c found, use target regen to generate code again") endif() My intention is to create a dependency tree from the library to the asn1 file. The source file list should be dynamic because it will be changed when the asn1 specification is changed. The OUTPUT parameter is generated to illegal shell syntax. I would expect that the library is rebuild after build target ‚regen'. This is not the case, so I manually start the build the target ‚OUTPUT’. But than I get the following error while build: Claus-MacBook-Pro:build clausklein$ ninja OUTPUT [1/1] cd /Users/clausklein/Workspace/c/asn1c/examples/Certificate/buil.../c/asn1c/examples/Certificate/build/_sample.asn1 && astyle "*.c" "*.h FAILED: cd /Users/clausklein/Workspace/c/asn1c/examples/Certificate/build && converter-sample.c pdu_collection.c && /opt/local/bin/asn1c -S /Users/clausklein/Workspace/c/asn1c/examples/Certificate/../../skeletons -pdu=all /Users/clausklein/Workspace/c/asn1c/examples/Certificate/build/_sample.asn1 && astyle "*.c" "*.h" /bin/sh: converter-sample.c: command not found ninja: build stopped: subcommand failed. Claus-MacBook-Pro:build clausklein$ too find the target name „OUTPUT“ strange: Claus-MacBook-Pro:build clausklein$ ninja help [1/1] All primary targets available: OUTPUT: phony edit_cache: phony install: phony install/local: phony install/strip: phony list_install_components: phony rebuild_cache: phony regen: phony converter-sample: phony libsample-asn1.a: phony sample: phony sample-asn1: phony build.ninja: RERUN_CMAKE clean: CLEAN help: HELP Claus-MacBook-Pro:build clausklein$ /usr/bin/cmake --version cmake version 3.0.0-rc3 Any help would be welcome Claus
signature.asc
Description: Message signed with OpenPGP using GPGMail
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers