summaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
diff options
context:
space:
mode:
authorDDCloud <ramarag@microsoft.com>2016-01-20 18:46:37 -0800
committerRama Krishnan Raghupathy <ramarag@microsoft.com>2016-01-21 14:45:26 -0800
commit956245eb5d4681bcc0182844abb74fdf3d372518 (patch)
tree38fb8408f8050d405d2f48614e19b6b19b95b462 /src/CMakeLists.txt
parent2c25d6ca44e3129ace57f6383260a42023a6d646 (diff)
downloadcoreclr-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.txt66
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})