 +  )
 +list(APPEND whrlpool_srcs
 +  whrlpool/wp_locl.h
-+  whrlpool/wp_block.c # wp_asm_src DEFAULT (Configurations/00-base-templates.conf)
-+  )
++  )
++if(NOT ASM_BUILD)
++  list(APPEND whrlpool_srcs
++    whrlpool/wp_block.c # wp_asm_src DEFAULT (Configurations/00-base-templates.conf)
++    )
++else()
++  set(whrlpool_extra
++    whrlpool/wp_block.c
++    )
++endif()
 +source_group(whrlpool FILES ${whrlpool_srcs})
 +list(APPEND ${lib_name}_libsrcs ${whrlpool_srcs})
 +##########
-+set(whrlpool_extra # TODO asm
++list(APPEND whrlpool_extra # TODO asm
 +  whrlpool/asm/wp-mmx.pl
 +  whrlpool/asm/wp-x86_64.pl
 +  )

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..6325b74
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,112 @@
+cmake_minimum_required(VERSION 3.12)
+project(openssl)
+include(flags OPTIONAL)
+########################################
+set_property(GLOBAL PROPERTY USE_FOLDERS ON) # enables MSVC Solution Folders
+set(OPENSSL_DEFS
+  -D_REENTRANT
+  -DL_ENDIAN

+  )
+list(APPEND camellia_srcs
+  camellia/cmll_locl.h
+  camellia/cmll_misc.c # cmll_asm_src DEFAULT (Configurations/00-base-templates.conf)
+  )
+if(NOT ASM_BUILD)
+  list(APPEND camellia_srcs
+    camellia/camellia.c # cmll_asm_src DEFAULT (Configurations/00-base-templates.conf)
+    camellia/cmll_cbc.c # cmll_asm_src DEFAULT (Configurations/00-base-templates.conf)
+    )
+else()
+  list(APPEND camellia_extra
+    camellia/camellia.c
+    camellia/cmll_cbc.c
+    )
+endif()
