+cmake_minimum_required(VERSION 3.12)
+cmake_policy(SET CMP0048 NEW)
+
+project(Random VERSION 1.2.0)
+
+set (PKG_VERSION ${PROJECT_VERSION_MAJOR}${PROJECT_VERSION_MINOR}${PROJECT_VERSION_PATCH})
+set (PKG_DOT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
+
+find_package(TclStub REQUIRED)
+
+set (TARGETNAME ${PROJECT_NAME}${PKG_VERSION})
+set (SOURCES
+ generic/random.c
+ generic/subtractive.c
+ generic/rand_mt.c
+ generic/rand_isaac.c
+ isaac/randport.c
+ generic/random.h
+ isaac/standard.h
+ isaac/rand.h
+)
+
+add_library(${TARGETNAME} SHARED ${SOURCES})
+
+target_include_directories(${TARGETNAME} PRIVATE
+ ${TCL_INCLUDE_PATH}
+ ${TK_INCLUDE_PATH}
+ generic
+ isaac)
+target_compile_definitions(${TARGETNAME} PRIVATE
+ -DUSE_TCL_STUBS
+ -DVERSION="${PKG_DOT_VERSION}"
+)
+target_link_libraries(${TARGETNAME} ${TCL_STUB_LIBRARY})
+
+#target_compile_definitions(${TARGETNAME} PRIVATE
+# -DPACKAGE_VERSION="${PKG_DOT_VERSION}"
+# -DCOMMAVERSION=${PROJECT_VERSION_MAJOR},${PROJECT_VERSION_MINOR},${PROJECT_VERSION_PATCH},0
+# -DDOTVERSION="${PKG_DOT_VERSION}"
+#)
+
+file(GENERATE
+ OUTPUT "pkgIndex.tcl"
+ CONTENT "package ifneeded ${PROJECT_NAME} ${PKG_DOT_VERSION} [list load [file join $dir $<TARGET_FILE_NAME:${TARGETNAME}>]]\n")