1
0

CMakeDefaultMakeRuleVariables.cmake 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. # this file contains rule variables that tell cmake how to
  2. # do things like build a .o file, create a shared or static library
  3. #
  4. # this file defines the following rule variables
  5. # CMAKE_CXX_CREATE_SHARED_LIBRARY
  6. # CMAKE_CXX_CREATE_SHARED_MODULE
  7. # CMAKE_C_CREATE_SHARED_LIBRARY
  8. # CMAKE_C_CREATE_SHARED_MODULE
  9. # CMAKE_CXX_CREATE_STATIC_LIBRARY
  10. # CMAKE_C_CREATE_STATIC_LIBRARY
  11. # CMAKE_CXX_COMPILE_OBJECT
  12. # CMAKE_C_COMPILE_OBJECT
  13. # CMAKE_C_LINK_EXECUTABLE
  14. # CMAKE_CXX_LINK_EXECUTABLE
  15. # variables supplied by the generator at use time
  16. # <TARGET>
  17. # <TARGET_BASE> the target without the suffix
  18. # <OBJECTS>
  19. # <OBJECT>
  20. # <LINK_LIBRARIES>
  21. # <FLAGS>
  22. # <LINK_FLAGS>
  23. # CXX compiler information
  24. # <CMAKE_CXX_COMPILER>
  25. # <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS>
  26. # <CMAKE_CXX_SHARED_MODULE_CREATE_FLAGS>
  27. # <CMAKE_CXX_LINK_FLAGS>
  28. # C compiler information
  29. # <CMAKE_C_COMPILER>
  30. # <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS>
  31. # <CMAKE_SHARED_MODULE_CREATE_C_FLAGS>
  32. # <CMAKE_C_LINK_FLAGS>
  33. # Static library tools
  34. # <CMAKE_AR>
  35. # <CMAKE_RANLIB>
  36. # create a shared C++ library
  37. IF(NOT CMAKE_CXX_CREATE_SHARED_LIBRARY)
  38. SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
  39. "<CMAKE_CXX_COMPILER> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
  40. ENDIF(NOT CMAKE_CXX_CREATE_SHARED_LIBRARY)
  41. IF(CMAKE_COMPILER_IS_GNUCXX)
  42. SET(CMAKE_CXX_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY} -lgcc")
  43. ENDIF(CMAKE_COMPILER_IS_GNUCXX)
  44. # create a c++ shared module copy the shared library rule by default
  45. IF(NOT CMAKE_CXX_CREATE_SHARED_MODULE)
  46. SET(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
  47. ENDIF(NOT CMAKE_CXX_CREATE_SHARED_MODULE)
  48. # create a C shared library
  49. IF(NOT CMAKE_C_CREATE_SHARED_LIBRARY)
  50. SET(CMAKE_C_CREATE_SHARED_LIBRARY
  51. "<CMAKE_C_COMPILER> <CMAKE_SHARED_LIBRARY_C_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_C_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
  52. ENDIF(NOT CMAKE_C_CREATE_SHARED_LIBRARY)
  53. # create a C shared module just copy the shared library rule
  54. IF(NOT CMAKE_C_CREATE_SHARED_MODULE)
  55. SET(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_C_CREATE_SHARED_LIBRARY})
  56. ENDIF(NOT CMAKE_C_CREATE_SHARED_MODULE)
  57. # create a C++ static library
  58. IF(NOT CMAKE_CXX_CREATE_STATIC_LIBRARY)
  59. SET(CMAKE_CXX_CREATE_STATIC_LIBRARY
  60. "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
  61. "<CMAKE_RANLIB> <TARGET> ")
  62. ENDIF(NOT CMAKE_CXX_CREATE_STATIC_LIBRARY)
  63. # create a C static library
  64. IF(NOT CMAKE_C_CREATE_STATIC_LIBRARY)
  65. SET(CMAKE_C_CREATE_STATIC_LIBRARY
  66. "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
  67. "<CMAKE_RANLIB> <TARGET> ")
  68. ENDIF(NOT CMAKE_C_CREATE_STATIC_LIBRARY)
  69. # compile a C++ file into an object file
  70. IF(NOT CMAKE_CXX_COMPILE_OBJECT)
  71. SET(CMAKE_CXX_COMPILE_OBJECT
  72. "<CMAKE_CXX_COMPILER> -o <OBJECT> <FLAGS> -c <SOURCE>")
  73. ENDIF(NOT CMAKE_CXX_COMPILE_OBJECT)
  74. # compile a C file into an object file
  75. IF(NOT CMAKE_C_COMPILE_OBJECT)
  76. SET(CMAKE_C_COMPILE_OBJECT
  77. "<CMAKE_C_COMPILER> -o <OBJECT> <FLAGS> -c <SOURCE>")
  78. ENDIF(NOT CMAKE_C_COMPILE_OBJECT)
  79. IF(NOT CMAKE_C_LINK_EXECUTABLE)
  80. SET(CMAKE_C_LINK_EXECUTABLE
  81. "<CMAKE_C_COMPILER> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
  82. ENDIF(NOT CMAKE_C_LINK_EXECUTABLE)
  83. IF(NOT CMAKE_CXX_LINK_EXECUTABLE)
  84. SET(CMAKE_CXX_LINK_EXECUTABLE
  85. "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
  86. ENDIF(NOT CMAKE_CXX_LINK_EXECUTABLE)