|
|
@@ -2,68 +2,99 @@
|
|
|
# do things like build a .o file, create a shared or static library
|
|
|
#
|
|
|
|
|
|
-# create a shared C++ librar
|
|
|
+# this file defines the following rule variables
|
|
|
+# CMAKE_CXX_CREATE_SHARED_LIBRARY
|
|
|
+# CMAKE_CXX_CREATE_SHARED_MODULE
|
|
|
+# CMAKE_C_CREATE_SHARED_LIBRARY
|
|
|
+# CMAKE_C_CREATE_SHARED_MODULE
|
|
|
+# CMAKE_CXX_CREATE_STATIC_LIBRARY
|
|
|
+# CMAKE_C_CREATE_STATIC_LIBRARY
|
|
|
+# CMAKE_CXX_COMPILE_OBJECT
|
|
|
+# CMAKE_C_COMPILE_OBJECT
|
|
|
+# CMAKE_C_LINK_EXECUTABLE
|
|
|
+# CMAKE_CXX_LINK_EXECUTABLE
|
|
|
+
|
|
|
+# variables supplied by the generator at use time
|
|
|
+# <TARGET>
|
|
|
+# <OBJECTS>
|
|
|
+# <OBJECT>
|
|
|
+# <LINK_LIBRARIES>
|
|
|
+
|
|
|
+# CXX compiler information
|
|
|
+# <CMAKE_CXX_COMPILER>
|
|
|
+# <CMAKE_CXX_COMPILE_FLAGS>
|
|
|
+# <CMAKE_CXX_SHARED_LIBRARY_CREATE_FLAGS>
|
|
|
+# <CMAKE_CXX_SHARED_MODULE_CREATE_FLAGS>
|
|
|
+# <CMAKE_CXX_LINK_FLAGS>
|
|
|
+
|
|
|
+# C compiler information
|
|
|
+# <CMAKE_C_COMPILER>
|
|
|
+# <CMAKE_C_COMPILE_FLAGS>
|
|
|
+# <CMAKE_C_SHARED_LIBRARY_CREATE_FLAGS>
|
|
|
+# <CMAKE_C_SHARED_MODULE_CREATE_FLAGS>
|
|
|
+# <CMAKE_C_LINK_FLAGS>
|
|
|
+
|
|
|
+# Static library tools
|
|
|
+# <CMAKE_AR>
|
|
|
+# <CMAKE_RANLIB>
|
|
|
+
|
|
|
+
|
|
|
+# create a shared C++ library
|
|
|
IF(NOT CMAKE_CXX_CREATE_SHARED_LIBRARY)
|
|
|
SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
|
|
|
- "${CMAKE_CXX_COMPILER} ${CMAKE_SHARED_LIBRARY_CREATE_FLAGS} "
|
|
|
- "${CMAKE_CXX_LINK_SHARED_OUT_FLAG} <TARGET> <OBJECTS>")
|
|
|
+ "<CMAKE_CXX_COMPILER> <CMAKE_CXX_SHARED_LIBRARY_CREATE_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
|
|
|
ENDIF(NOT CMAKE_CXX_CREATE_SHARED_LIBRARY)
|
|
|
|
|
|
-# create a c++ shared module
|
|
|
+# create a c++ shared module copy the shared library rule by default
|
|
|
IF(NOT CMAKE_CXX_CREATE_SHARED_MODULE)
|
|
|
- SET(CMAKE_CXX_CREATE_SHARED_MODULE
|
|
|
- "${CMAKE_CXX_COMPILER} ${CMAKE_SHARED_MODULE_CREATE_FLAGS} "
|
|
|
- "${CMAKE_CXX_LINK_SHARED_OUT_FLAG} <TARGET> <OBJECTS>")
|
|
|
+ SET(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
|
|
|
ENDIF(NOT CMAKE_CXX_CREATE_SHARED_MODULE)
|
|
|
|
|
|
# create a C shared library
|
|
|
IF(NOT CMAKE_C_CREATE_SHARED_LIBRARY)
|
|
|
SET(CMAKE_C_CREATE_SHARED_LIBRARY
|
|
|
- "${CMAKE_C_COMPILER} ${CMAKE_SHARED_LIBRARY_CREATE_FLAGS} "
|
|
|
- "${CMAKE_C_LINK_SHARED_OUT_FLAG} <TARGET> <OBJECTS>")
|
|
|
+ "<CMAKE_C_COMPILER> <CMAKE_C_SHARED_LIBRARY_CREATE_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
|
|
|
ENDIF(NOT CMAKE_C_CREATE_SHARED_LIBRARY)
|
|
|
|
|
|
-# create a C shared module
|
|
|
+# create a C shared module just copy the shared library rule
|
|
|
IF(NOT CMAKE_C_CREATE_SHARED_MODULE)
|
|
|
- SET(CMAKE_C_CREATE_SHARED_MODULE
|
|
|
- "${CMAKE_C_COMPILER} ${CMAKE_SHARED_MODULE_CREATE_FLAGS} "
|
|
|
- "${CMAKE_C_LINK_SHARED_OUT_FLAG} <TARGET> <OBJECTS>")
|
|
|
+ SET(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_C_CREATE_SHARED_LIBRARY})
|
|
|
ENDIF(NOT CMAKE_C_CREATE_SHARED_MODULE)
|
|
|
|
|
|
# create a C++ static library
|
|
|
IF(NOT CMAKE_CXX_CREATE_STATIC_LIBRARY)
|
|
|
SET(CMAKE_CXX_CREATE_STATIC_LIBRARY
|
|
|
- "${CMAKE_CXX_AR} cr <TARGET> <OBJECTS> "
|
|
|
- "${CMAKE_RANLIB} <TARGET> ")
|
|
|
+ "<CMAKE_AR> cr <TARGET> <OBJECTS> "
|
|
|
+ "<CMAKE_RANLIB> <TARGET> ")
|
|
|
ENDIF(NOT CMAKE_CXX_CREATE_STATIC_LIBRARY)
|
|
|
|
|
|
# create a C static library
|
|
|
IF(NOT CMAKE_C_CREATE_STATIC_LIBRARY)
|
|
|
SET(CMAKE_C_CREATE_STATIC_LIBRARY
|
|
|
- "${CMAKE_AR} cr <TARGET> <OBJECTS> "
|
|
|
- "${CMAKE_RANLIB} <TARGET> ")
|
|
|
+ "<CMAKE_AR> cr <TARGET> <OBJECTS> "
|
|
|
+ "<CMAKE_RANLIB> <TARGET> ")
|
|
|
ENDIF(NOT CMAKE_C_CREATE_STATIC_LIBRARY)
|
|
|
|
|
|
# compile a C++ file into an object file
|
|
|
IF(NOT CMAKE_CXX_COMPILE_OBJECT)
|
|
|
SET(CMAKE_CXX_COMPILE_OBJECT
|
|
|
- "${CMAKE_CXX_COMPILER} -o <OBJECT> <INCLUDE_FLAGS> <SHARED_FLAGS> ${CMAKE_CXX_FLAGS} -c <SOURCE>")
|
|
|
+ "<CMAKE_CXX_COMPILER> -o <OBJECT> <CMAKE_CXX_COMPILE_FLAGS> -c <SOURCE>")
|
|
|
ENDIF(NOT CMAKE_CXX_COMPILE_OBJECT)
|
|
|
|
|
|
# compile a C file into an object file
|
|
|
IF(NOT CMAKE_C_COMPILE_OBJECT)
|
|
|
SET(CMAKE_C_COMPILE_OBJECT
|
|
|
- "${CMAKE_C_COMPILER} -o <OBJECT> <INCLUDE_FLAGS> <SHARED_FLAGS> ${CMAKE_C_FLAGS} -c <SOURCE>")
|
|
|
+ "<CMAKE_C_COMPILER> -o <OBJECT> <CMAKE_C_COMPILE_FLAGS> -c <SOURCE>")
|
|
|
ENDIF(NOT CMAKE_C_COMPILE_OBJECT)
|
|
|
|
|
|
|
|
|
IF(NOT CMAKE_C_LINK_EXECUTABLE)
|
|
|
SET(CMAKE_C_LINK_EXECUTABLE
|
|
|
- "${CMAKE_C_COMPILER} <SHARED_FLAGS> <OBJECTS> -o <TARGET> ")
|
|
|
+ "<CMAKE_C_COMPILER> <CMAKE_C_LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
|
|
ENDIF(NOT CMAKE_C_LINK_EXECUTABLE)
|
|
|
|
|
|
|
|
|
IF(NOT CMAKE_CXX_LINK_EXECUTABLE)
|
|
|
SET(CMAKE_CXX_LINK_EXECUTABLE
|
|
|
- "${CMAKE_CXX_COMPILER} <SHARED_FLAGS> <OBJECTS> -o <TARGET> ")
|
|
|
+ "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
|
|
ENDIF(NOT CMAKE_CXX_LINK_EXECUTABLE)
|