[CLANG-CL] Initial commit that allows us to compile ReactOS with clang-cl.
[reactos.git] / drivers / filesystems / ext2 / CMakeLists.txt
index 8e1f952..6627874 100644 (file)
 
-include_directories(inc)
+include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/drivers
+                    inc)
 
 list(APPEND SOURCE
-    src/volinfo.c
+    src/init.c
+    src/ext3/generic.c
+    src/ext3/htree.c
+    src/ext3/indirect.c
+    src/ext3/recover.c
+    src/ext4/ext4_bh.c
+    src/ext4/ext4_extents.c
+    src/ext4/ext4_jbd2.c
+    src/ext4/ext4_xattr.c
+    src/ext4/extents.c
+    src/jbd/recovery.c
+    src/jbd/replay.c
+    src/jbd/revoke.c
+    src/nls/nls_ascii.c
+    src/nls/nls_base.c
+    src/nls/nls_cp437.c
+    src/nls/nls_cp737.c
+    src/nls/nls_cp775.c
+    src/nls/nls_cp850.c
+    src/nls/nls_cp852.c
+    src/nls/nls_cp855.c
+    src/nls/nls_cp857.c
+    src/nls/nls_cp860.c
+    src/nls/nls_cp861.c
+    src/nls/nls_cp862.c
+    src/nls/nls_cp863.c
+    src/nls/nls_cp864.c
+    src/nls/nls_cp865.c
+    src/nls/nls_cp866.c
+    src/nls/nls_cp869.c
+    src/nls/nls_cp874.c
+    src/nls/nls_cp932.c
+    src/nls/nls_cp936.c
+    src/nls/nls_cp949.c
+    src/nls/nls_cp950.c
+    src/nls/nls_cp1250.c
+    src/nls/nls_cp1251.c
+    src/nls/nls_cp1255.c
+    src/nls/nls_euc-jp.c
+    src/nls/nls_iso8859-1.c
+    src/nls/nls_iso8859-2.c
+    src/nls/nls_iso8859-3.c
+    src/nls/nls_iso8859-4.c
+    src/nls/nls_iso8859-5.c
+    src/nls/nls_iso8859-6.c
+    src/nls/nls_iso8859-7.c
+    src/nls/nls_iso8859-9.c
+    src/nls/nls_iso8859-13.c
+    src/nls/nls_iso8859-14.c
+    src/nls/nls_iso8859-15.c
+    src/nls/nls_koi8-r.c
+    src/nls/nls_koi8-ru.c
+    src/nls/nls_koi8-u.c
+    src/nls/nls_utf8.c
+    src/access.c
+    src/block.c
+    src/cleanup.c
+    src/close.c
+    src/cmcb.c
     src/create.c
-    src/write.c
-    src/metadata.c
+    src/debug.c
+    src/devctl.c
+    src/dirctl.c
+    src/dispatch.c
+    src/ea.c
+    src/except.c
     src/fastio.c
-    src/dircntrl.c
-    src/DiskIO.c
-    src/fsctrl.c
-    src/devcntrl.c
-    src/flush.c
-    src/ext2init.c
-    src/io.c
-    src/close.c
     src/fileinfo.c
-    src/read.c
-    src/cleanup.c
+    src/flush.c
+    src/fsctl.c
+    src/linux.c
+    src/lock.c
+    src/memory.c
     src/misc.c
+    src/nls.c
+    src/pnp.c
+    src/rbtree.c
+    src/read.c
     src/shutdown.c
-    inc/ext2fsd.h)
+    src/volinfo.c
+    src/write.c
+    inc/ext2fs.h)
+
+add_library(ext2fs SHARED ${SOURCE} ext2fs.rc)
 
-add_library(ext2fs SHARED ${SOURCE})
+if(USE_CLANG_CL)
+    set_property(SOURCE src/create.c src/fileinfo.c src/memory.c src/read.c APPEND_STRING PROPERTY COMPILE_FLAGS " /fallback")
+endif()
 
-if((NOT MSVC) AND (NOT CMAKE_C_COMPILER_ID STREQUAL "Clang"))
-    add_target_compile_flags(ext2fs "-Wno-unused-but-set-variable")
+if(NOT MSVC)
+    add_target_compile_flags(ext2fs "-Wno-pointer-sign -Wno-unused-function")
+    add_target_compile_flags(ext2fs "-Wno-unused-but-set-variable -Wno-unused-variable -Wno-missing-braces")
+else()
+    #disable warnings: "unreferenced local variable", "initialized, but not used variable", "benign include"
+    replace_compile_flags("/we\"4189\"" " ")
+    add_target_compile_flags(ext2fs "/wd\"4189\" /wd\"4142\" /wd\"4101\"")
 endif()
 
-target_link_libraries(ext2fs ${PSEH_LIB})
-add_pch(ext2fs inc/ext2fsd.h SOURCE)
+target_link_libraries(ext2fs memcmp ${PSEH_LIB})
+add_definitions(-D__KERNEL__)
 set_module_type(ext2fs kernelmodedriver)
 add_importlibs(ext2fs ntoskrnl hal)
+
+if(NOT USE_CLANG_CL)
+    # The fallback we have above prevents cl and clang-cl from using the same PCH
+    add_pch(ext2fs inc/ext2fs.h SOURCE)
+endif()
+
 add_cd_file(TARGET ext2fs DESTINATION reactos/system32/drivers NO_CAB FOR all)