Explorar el Código

Add option to disable static targets

Fabian Wolff hace 9 años
padre
commit
ba57d3b592
Se han modificado 3 ficheros con 27 adiciones y 12 borrados
  1. 11 6
      sq/CMakeLists.txt
  2. 8 3
      sqstdlib/CMakeLists.txt
  3. 8 3
      squirrel/CMakeLists.txt

+ 11 - 6
sq/CMakeLists.txt

@@ -3,16 +3,21 @@ set_target_properties(sq PROPERTIES LINKER_LANGUAGE C)
 target_link_libraries(sq squirrel sqstdlib)
 install(TARGETS sq RUNTIME DESTINATION ${INSTALL_BIN_DIR})
 
-add_executable(sq_static sq.c)
-set_target_properties(sq_static PROPERTIES LINKER_LANGUAGE C)
-target_link_libraries(sq_static squirrel_static sqstdlib_static)
-install(TARGETS sq_static RUNTIME DESTINATION ${INSTALL_BIN_DIR})
+if(NOT DEFINED DISABLE_STATIC)
+  add_executable(sq_static sq.c)
+  set_target_properties(sq_static PROPERTIES LINKER_LANGUAGE C)
+  target_link_libraries(sq_static squirrel_static sqstdlib_static)
+  install(TARGETS sq_static RUNTIME DESTINATION ${INSTALL_BIN_DIR})
+endif()
 
 if(DEFINED LONG_OUTPUT_NAMES)
   set_target_properties(sq PROPERTIES OUTPUT_NAME squirrel3)
-  set_target_properties(sq_static PROPERTIES OUTPUT_NAME squirrel3_static)
+
+  if(NOT DEFINED DISABLE_STATIC)
+    set_target_properties(sq_static PROPERTIES OUTPUT_NAME squirrel3_static)
+  endif()
 endif()
 
-if(CMAKE_COMPILER_IS_GNUCXX)
+if(CMAKE_COMPILER_IS_GNUCXX AND (NOT DEFINED DISABLE_STATIC))
   set_target_properties(sq_static PROPERTIES COMPILE_FLAGS "-static -Wl,-static")
 endif()

+ 8 - 3
sqstdlib/CMakeLists.txt

@@ -13,10 +13,15 @@ install(TARGETS sqstdlib RUNTIME DESTINATION ${INSTALL_BIN_DIR}
                          LIBRARY DESTINATION ${INSTALL_LIB_DIR}
                          ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
 
-add_library(sqstdlib_static STATIC ${SQSTDLIB_SRC})
-install(TARGETS sqstdlib_static ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
+if(NOT DEFINED DISABLE_STATIC)
+  add_library(sqstdlib_static STATIC ${SQSTDLIB_SRC})
+  install(TARGETS sqstdlib_static ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
+endif()
 
 if(DEFINED LONG_OUTPUT_NAMES)
   set_target_properties(sqstdlib PROPERTIES OUTPUT_NAME sqstdlib3)
-  set_target_properties(sqstdlib_static PROPERTIES OUTPUT_NAME sqstdlib3_static)
+
+  if(NOT DEFINED DISABLE_STATIC)
+    set_target_properties(sqstdlib_static PROPERTIES OUTPUT_NAME sqstdlib3_static)
+  endif()
 endif()

+ 8 - 3
squirrel/CMakeLists.txt

@@ -16,10 +16,15 @@ install(TARGETS squirrel RUNTIME DESTINATION ${INSTALL_BIN_DIR}
                          LIBRARY DESTINATION ${INSTALL_LIB_DIR}
                          ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
 
-add_library(squirrel_static STATIC ${SQUIRREL_SRC})
-install(TARGETS squirrel_static ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
+if(NOT DEFINED DISABLE_STATIC)
+  add_library(squirrel_static STATIC ${SQUIRREL_SRC})
+  install(TARGETS squirrel_static ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
+endif()
 
 if(DEFINED LONG_OUTPUT_NAMES)
   set_target_properties(squirrel PROPERTIES OUTPUT_NAME squirrel3)
-  set_target_properties(squirrel_static PROPERTIES OUTPUT_NAME squirrel3_static)
+
+  if(NOT DEFINED DISABLE_STATIC)
+    set_target_properties(squirrel_static PROPERTIES OUTPUT_NAME squirrel3_static)
+  endif()
 endif()