summaryrefslogtreecommitdiffstats
path: root/Modules/Platform/Windows-cl.cmake
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2002-11-08 20:46:08 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2002-11-08 20:46:08 (GMT)
commitf5d95fb078ec48755762931fe2882ed1cbe1171e (patch)
tree945dca55d34b543db452c586aba0de863cf25cec /Modules/Platform/Windows-cl.cmake
parentc72462ffb1c75573e0d67a7101438a62bfc2fda1 (diff)
downloadCMake-f5d95fb078ec48755762931fe2882ed1cbe1171e.zip
CMake-f5d95fb078ec48755762931fe2882ed1cbe1171e.tar.gz
CMake-f5d95fb078ec48755762931fe2882ed1cbe1171e.tar.bz2
Complete rework of makefile generators expect trouble
Diffstat (limited to 'Modules/Platform/Windows-cl.cmake')
-rw-r--r--Modules/Platform/Windows-cl.cmake70
1 files changed, 70 insertions, 0 deletions
diff --git a/Modules/Platform/Windows-cl.cmake b/Modules/Platform/Windows-cl.cmake
new file mode 100644
index 0000000..bf274fa
--- /dev/null
+++ b/Modules/Platform/Windows-cl.cmake
@@ -0,0 +1,70 @@
+SET(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:")
+SET(CMAKE_LINK_LIBRARY_FLAG "")
+
+# create a shared C++ library
+SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
+ "link @<<\n /out:<TARGET> /dll <OBJECTS> <LINK_LIBRARIES> \n<<")
+
+SET(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
+
+# create a C shared library
+SET(CMAKE_C_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
+
+# create a C shared module just copy the shared library rule
+SET(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_C_CREATE_SHARED_LIBRARY})
+
+
+# create a C++ static library
+SET(CMAKE_CXX_CREATE_STATIC_LIBRARY "lib /nologo /out:<TARGET> <OBJECTS> ")
+
+# create a C static library
+SET(CMAKE_C_CREATE_STATIC_LIBRARY ${CMAKE_CXX_CREATE_STATIC_LIBRARY})
+
+# compile a C++ file into an object file
+SET(CMAKE_CXX_COMPILE_OBJECT
+ "<CMAKE_CXX_COMPILER> @<<\n -DWIN32 /Fo<OBJECT> <FLAGS> -c <SOURCE>\n<<")
+
+# compile a C file into an object file
+SET(CMAKE_C_COMPILE_OBJECT
+ "<CMAKE_C_COMPILER> @<<\n -DWIN32 /Fo<OBJECT> <FLAGS> -c <SOURCE>\n<<")
+
+
+SET(CMAKE_C_LINK_EXECUTABLE
+ "<CMAKE_C_COMPILER> @<<\n <CMAKE_C_LINK_FLAGS> <FLAGS> <OBJECTS> /Fe<TARGET> -link <LINK_FLAGS> <LINK_LIBRARIES>\n<<")
+
+SET(CMAKE_COMPILE_RESOURCE "rc <FLAGS> /fo<OBJECT> <SOURCE>")
+
+SET(CMAKE_CXX_LINK_EXECUTABLE
+ "<CMAKE_CXX_COMPILER> @<<\n <CMAKE_CXX_LINK_FLAGS> <FLAGS> <OBJECTS> /Fe<TARGET> -link <LINK_FLAGS> <LINK_LIBRARIES>\n<<")
+
+SET (CMAKE_BUILD_TYPE Debug CACHE STRING
+ "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel.")
+
+SET(CMAKE_CREATE_WIN32_EXE /subsystem:windows)
+
+SET (CMAKE_CXX_FLAGS "/nologo /W3 /Zm1000 /GX /GR" CACHE STRING
+ "Flags used by the compiler during all build types, /GX /GR are for exceptions and rtti in VC++, /Zm1000 increases the compiler's memory allocation to support ANSI C++/stdlib.")
+
+SET (CMAKE_CXX_FLAGS_DEBUG "/MDd /Zi /Od /GZ" CACHE STRING
+ "Flags used by the compiler during debug builds.")
+
+SET (CMAKE_CXX_FLAGS_MINSIZEREL "/MD /O1" CACHE STRING
+ "Flags used by the compiler during release minsize builds.")
+
+SET (CMAKE_CXX_FLAGS_RELEASE "/MD /O2" CACHE STRING
+ "Flags used by the compiler during release builds (/MD /Ob1 /Oi /Ot /Oy /Gs will produce slightly less optimized but smaller files).")
+
+SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD /Zi /O2" CACHE STRING
+ "Flags used by the compiler during Release with Debug Info builds.")
+
+
+SET (CMAKE_C_FLAGS "/nologo /W3 /Zm1000" CACHE STRING
+ "Flags for C compiler.")
+
+SET (CMAKE_STANDARD_LIBRARIES "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib" CACHE STRING
+ "Libraries linked by defalut with all applications.")
+MARK_AS_ADVANCED(CMAKE_STANDARD_LIBRARIES)
+
+FIND_PROGRAM(CMAKE_MAKE_PROGRAM NAMES nmake )
+SET(CMAKE_BUILD_TOOL ${CMAKE_MAKE_PROGRAM} CACHE INTERNAL
+ "What is the target build tool cmake is generating for.")