diff options
author | DDCloud <ramarag@microsoft.com> | 2016-01-20 18:46:37 -0800 |
---|---|---|
committer | Rama Krishnan Raghupathy <ramarag@microsoft.com> | 2016-01-21 14:45:26 -0800 |
commit | 956245eb5d4681bcc0182844abb74fdf3d372518 (patch) | |
tree | 38fb8408f8050d405d2f48614e19b6b19b95b462 /src/CMakeLists.txt | |
parent | 2c25d6ca44e3129ace57f6383260a42023a6d646 (diff) | |
download | coreclr-956245eb5d4681bcc0182844abb74fdf3d372518.tar.gz coreclr-956245eb5d4681bcc0182844abb74fdf3d372518.tar.bz2 coreclr-956245eb5d4681bcc0182844abb74fdf3d372518.zip |
Generating Event Logging Headers From CMake for Linux
Conflicts:
build.sh
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r-- | src/CMakeLists.txt | 66 |
1 files changed, 50 insertions, 16 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9231dc9a79..243c7d34fa 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,30 +10,64 @@ include_directories("classlibnative/cryptography") include_directories("classlibnative/inc") include_directories("${GENERATED_INCLUDE_DIR}") +# The Following Logic is used to wire up Build dependencies for Generated files in Event Logging +# ClrEtwAll.man - Event Schema +# ClrEtwAllMeta.lst - MetaData list [provided to ensure Windows Desktop is not broken] +# genXplatEventing.py - has the core logic for parsing Event Schema +# genWinEtw.py - Uses genXplatEventing to generate Windows Specific ETW Files +# clretwallmain.h and etmdummy.h - Provides the Event Logging Functionality to the VM +# clrxplatevents.h - Used by clretwallmain.h on Non Windows platform +# ClrEtwAll.h - Used by clretwallmain.h on Windows +# ClrEtwAll.rc - Used by src/dlls/clretwrc/clretrw.rc on Windows + +set (ScriptGeneratedEventFiles + ${GENERATED_INCLUDE_DIR}/clretwallmain.h + ${GENERATED_INCLUDE_DIR}/etmdummy.h +) +set (GeneratedEventFiles) + if(WIN32) - add_custom_command( - COMMENT "Generating Eventing Files" - OUTPUT ${GENERATED_INCLUDE_DIR}/ClrEtwAll.h - OUTPUT ${GENERATED_INCLUDE_DIR}/clretwallmain.h - OUTPUT ${GENERATED_INCLUDE_DIR}/etmdummy.h - COMMAND ${MC} -h ${GENERATED_INCLUDE_DIR} -r ${GENERATED_INCLUDE_DIR} -b -co -um -p FireEtw "${VM_DIR}/ClrEtwAll.man" - COMMAND ${PYTHON} -B -Wall -Werror "${CLR_DIR}/src/scripts/genWinEtw.py" --man "${VM_DIR}/ClrEtwAll.man" --exc "${VM_DIR}/ClrEtwAllMeta.lst" --eventheader "${GENERATED_INCLUDE_DIR}/ClrEtwAll.h" --macroheader "${GENERATED_INCLUDE_DIR}/clretwallmain.h" --dummy "${GENERATED_INCLUDE_DIR}/etmdummy.h" - DEPENDS "${CLR_DIR}/src/scripts/genWinEtw.py" "${VM_DIR}/ClrEtwAll.man" "${VM_DIR}/ClrEtwAllMeta.lst" + set (GenEventFilesScript "${CLR_DIR}/src/scripts/genWinEtw.py") + set (GenEventArgs --eventheader "${GENERATED_INCLUDE_DIR}/ClrEtwAll.h" --macroheader "${GENERATED_INCLUDE_DIR}/clretwallmain.h") + + list (APPEND ScriptGeneratedEventFiles + ${GENERATED_INCLUDE_DIR}/ClrEtwAll.h + ) + + list (APPEND GeneratedEventFiles + ${GENERATED_INCLUDE_DIR}/ClrEtwAll.rc ) -elseif(CLR_CMAKE_PLATFORM_LINUX) + add_custom_command( - COMMENT "Generating Eventing Files" + COMMENT "Generating ETW resource Files" + COMMAND ${MC} -h ${GENERATED_INCLUDE_DIR} -r ${GENERATED_INCLUDE_DIR} -b -co -um -p FireEtw "${VM_DIR}/ClrEtwAll.man" OUTPUT ${GENERATED_INCLUDE_DIR}/ClrEtwAll.h - OUTPUT ${GENERATED_INCLUDE_DIR}/clretwallmain.h - OUTPUT ${GENERATED_INCLUDE_DIR}/etmdummy.h - COMMAND ${PYTHON} -B -Wall -Werror "${CLR_DIR}/src/scripts/genXplatEventing.py" --man "${VM_DIR}/ClrEtwAll.man" --exc "${VM_DIR}/ClrEtwAllMeta.lst" --eventheader "${GENERATED_INCLUDE_DIR}/ClrEtwAll.h" --macroheader "${GENERATED_INCLUDE_DIR}/clretwallmain.h" --dummy "${GENERATED_INCLUDE_DIR}/etmdummy.h" - DEPENDS "${CLR_DIR}/src/scripts/genWinEtw.py" "${VM_DIR}/ClrEtwAll.man" "${VM_DIR}/ClrEtwAllMeta.lst" + DEPENDS "${VM_DIR}/ClrEtwAll.man" + ) +else() + set (GenEventFilesScript "${CLR_DIR}/src/scripts/genXplatEventing.py") + set (GenEventArgs --inc "${GENERATED_INCLUDE_DIR}") + + list (APPEND ScriptGeneratedEventFiles + ${GENERATED_INCLUDE_DIR}/clrxplatevents.h ) -endif() +endif(WIN32) + +add_custom_command( + COMMENT "Generating Eventing Files" + COMMAND ${PYTHON} -B -Wall -Werror ${GenEventFilesScript} ${GenEventArgs} --man "${VM_DIR}/ClrEtwAll.man" --exc "${VM_DIR}/ClrEtwAllMeta.lst" --dummy "${GENERATED_INCLUDE_DIR}/etmdummy.h" + OUTPUT ${ScriptGeneratedEventFiles} + DEPENDS ${GenEventFilesScript} "${VM_DIR}/ClrEtwAll.man" "${VM_DIR}/ClrEtwAllMeta.lst" "${CLR_DIR}/src/scripts/genXplatEventing.py" +) + +list (APPEND GeneratedEventFiles + ${ScriptGeneratedEventFiles} +) add_custom_target( GeneratedEventingFiles - DEPENDS ${GENERATED_INCLUDE_DIR}/clretwallmain.h ${GENERATED_INCLUDE_DIR}/etmdummy.h ${GENERATED_INCLUDE_DIR}/ClrEtwAll.h) + DEPENDS ${GeneratedEventFiles} +) function(add_library_clr) add_library(${ARGV}) |