Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2011-10-11 18:30:53 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-10-11 18:30:53 +0400
commit4f33d65ba1f02f2cd3f340d0123900ea1beffd2c (patch)
tree05ef40081ce6be190a171e0fee09b12344e16eb6 /build_files/cmake
parent1ab9fc59b750b1dc5ebaacd30c6891949895a10d (diff)
parent79f21f88c2be305962f6432bf8b1af94056fd92b (diff)
Cycles: svn merge -r40411:40934 ^/trunk/blender
Diffstat (limited to 'build_files/cmake')
-rw-r--r--build_files/cmake/Modules/FindPythonLibsUnix.cmake108
-rw-r--r--build_files/cmake/Modules/FindSamplerate.cmake70
-rw-r--r--build_files/cmake/cmake_static_check_cppcheck.py25
-rw-r--r--build_files/cmake/cmake_static_check_sparse.py14
-rw-r--r--build_files/cmake/cmake_static_check_splint.py16
-rw-r--r--build_files/cmake/config/blender_headless.cmake1
-rw-r--r--build_files/cmake/config/blender_lite.cmake1
-rw-r--r--build_files/cmake/config/bpy_module.cmake1
-rw-r--r--build_files/cmake/macros.cmake72
-rw-r--r--build_files/cmake/project_source_info.py46
10 files changed, 172 insertions, 182 deletions
diff --git a/build_files/cmake/Modules/FindPythonLibsUnix.cmake b/build_files/cmake/Modules/FindPythonLibsUnix.cmake
index 882f1e2ea77..fd5d20920da 100644
--- a/build_files/cmake/Modules/FindPythonLibsUnix.cmake
+++ b/build_files/cmake/Modules/FindPythonLibsUnix.cmake
@@ -34,67 +34,71 @@ IF(NOT PYTHON_ROOT_DIR AND NOT $ENV{PYTHON_ROOT_DIR} STREQUAL "")
SET(PYTHON_ROOT_DIR $ENV{PYTHON_ROOT_DIR})
ENDIF()
-IF(DEFINED PYTHON_VERSION)
- SET(PYTHON_VERSION "${PYTHON_VERSION}" CACHE STRING "")
-ELSE()
- SET(PYTHON_VERSION 3.2 CACHE STRING "")
-ENDIF()
+SET(PYTHON_VERSION 3.2 CACHE STRING "Python Version (major and minor only)")
MARK_AS_ADVANCED(PYTHON_VERSION)
-SET(PYTHON_LINKFLAGS "-Xlinker -export-dynamic")
+
+# See: http://docs.python.org/extending/embedding.html#linking-requirements
+# for why this is needed
+SET(PYTHON_LINKFLAGS "-Xlinker -export-dynamic" CACHE STRING "Linker flags for python")
MARK_AS_ADVANCED(PYTHON_LINKFLAGS)
-SET(_python_ABI_FLAGS
- "m;mu;u; " # release
- "md;mud;ud;d" # debug
-)
-
-STRING(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
-
-SET(_python_SEARCH_DIRS
- ${PYTHON_ROOT_DIR}
- "$ENV{HOME}/py${_PYTHON_VERSION_NO_DOTS}"
- "/opt/py${_PYTHON_VERSION_NO_DOTS}"
-)
-
-FOREACH(_CURRENT_ABI_FLAGS ${_python_ABI_FLAGS})
- #IF(CMAKE_BUILD_TYPE STREQUAL Debug)
- # SET(_CURRENT_ABI_FLAGS "d${_CURRENT_ABI_FLAGS}")
- #ENDIF()
- STRING(REPLACE " " "" _CURRENT_ABI_FLAGS ${_CURRENT_ABI_FLAGS})
-
- FIND_PATH(PYTHON_INCLUDE_DIR
- NAMES
- Python.h
- HINTS
- ${_python_SEARCH_DIRS}
- PATH_SUFFIXES
- include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
- )
- FIND_LIBRARY(PYTHON_LIBRARY
- NAMES
- "python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}"
- HINTS
- ${_python_SEARCH_DIRS}
- PATH_SUFFIXES
- lib64 lib
+# only search for the dirs if we havn't already
+IF((NOT DEFINED PYTHON_INCLUDE_DIR) OR (NOT DEFINED PYTHON_LIBRARY))
+
+ SET(_python_ABI_FLAGS
+ "m;mu;u; " # release
+ "md;mud;ud;d" # debug
)
- IF(PYTHON_LIBRARY AND PYTHON_INCLUDE_DIR)
- break()
- ELSE()
- # ensure we dont find values from 2 different ABI versions
- UNSET(PYTHON_INCLUDE_DIR CACHE)
- UNSET(PYTHON_LIBRARY CACHE)
- ENDIF()
-ENDFOREACH()
+ STRING(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
-UNSET(_CURRENT_ABI_FLAGS)
-UNSET(_CURRENT_PATH)
+ SET(_python_SEARCH_DIRS
+ ${PYTHON_ROOT_DIR}
+ "$ENV{HOME}/py${_PYTHON_VERSION_NO_DOTS}"
+ "/opt/py${_PYTHON_VERSION_NO_DOTS}"
+ )
-UNSET(_python_ABI_FLAGS)
-UNSET(_python_SEARCH_DIRS)
+ FOREACH(_CURRENT_ABI_FLAGS ${_python_ABI_FLAGS})
+ #IF(CMAKE_BUILD_TYPE STREQUAL Debug)
+ # SET(_CURRENT_ABI_FLAGS "d${_CURRENT_ABI_FLAGS}")
+ #ENDIF()
+ STRING(REPLACE " " "" _CURRENT_ABI_FLAGS ${_CURRENT_ABI_FLAGS})
+
+ FIND_PATH(PYTHON_INCLUDE_DIR
+ NAMES
+ Python.h
+ HINTS
+ ${_python_SEARCH_DIRS}
+ PATH_SUFFIXES
+ include/python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}
+ )
+
+ FIND_LIBRARY(PYTHON_LIBRARY
+ NAMES
+ "python${PYTHON_VERSION}${_CURRENT_ABI_FLAGS}"
+ HINTS
+ ${_python_SEARCH_DIRS}
+ PATH_SUFFIXES
+ lib64 lib
+ )
+
+ IF(PYTHON_LIBRARY AND PYTHON_INCLUDE_DIR)
+ break()
+ ELSE()
+ # ensure we dont find values from 2 different ABI versions
+ UNSET(PYTHON_INCLUDE_DIR CACHE)
+ UNSET(PYTHON_LIBRARY CACHE)
+ ENDIF()
+ ENDFOREACH()
+
+ UNSET(_CURRENT_ABI_FLAGS)
+ UNSET(_CURRENT_PATH)
+
+ UNSET(_python_ABI_FLAGS)
+ UNSET(_python_SEARCH_DIRS)
+ENDIF()
# handle the QUIETLY and REQUIRED arguments and SET PYTHONLIBSUNIX_FOUND to TRUE IF
# all listed variables are TRUE
diff --git a/build_files/cmake/Modules/FindSamplerate.cmake b/build_files/cmake/Modules/FindSamplerate.cmake
deleted file mode 100644
index ea7a0d7a18c..00000000000
--- a/build_files/cmake/Modules/FindSamplerate.cmake
+++ /dev/null
@@ -1,70 +0,0 @@
-# - Find Samplerate library
-# Find the native Samplerate includes and library
-# This module defines
-# SAMPLERATE_INCLUDE_DIRS, where to find samplerate.h, Set when
-# SAMPLERATE_INCLUDE_DIR is found.
-# SAMPLERATE_LIBRARIES, libraries to link against to use Samplerate.
-# SAMPLERATE_ROOT_DIR, The base directory to search for Samplerate.
-# This can also be an environment variable.
-# SAMPLERATE_FOUND, If false, do not try to use Samplerate.
-#
-# also defined, but not for general use are
-# SAMPLERATE_LIBRARY, where to find the Samplerate library.
-
-#=============================================================================
-# Copyright 2011 Blender Foundation.
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-
-# If SAMPLERATE_ROOT_DIR was defined in the environment, use it.
-IF(NOT SAMPLERATE_ROOT_DIR AND NOT $ENV{SAMPLERATE_ROOT_DIR} STREQUAL "")
- SET(SAMPLERATE_ROOT_DIR $ENV{SAMPLERATE_ROOT_DIR})
-ENDIF()
-
-SET(_samplerate_SEARCH_DIRS
- ${SAMPLERATE_ROOT_DIR}
- /usr/local
- /sw # Fink
- /opt/local # DarwinPorts
- /opt/csw # Blastwave
-)
-
-FIND_PATH(SAMPLERATE_INCLUDE_DIR
- NAMES
- samplerate.h
- HINTS
- ${_samplerate_SEARCH_DIRS}
- PATH_SUFFIXES
- include
-)
-
-FIND_LIBRARY(SAMPLERATE_LIBRARY
- NAMES
- samplerate
- HINTS
- ${_samplerate_SEARCH_DIRS}
- PATH_SUFFIXES
- lib64 lib
- )
-
-# handle the QUIETLY and REQUIRED arguments and set SAMPLERATE_FOUND to TRUE if
-# all listed variables are TRUE
-INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Samplerate DEFAULT_MSG
- SAMPLERATE_LIBRARY SAMPLERATE_INCLUDE_DIR)
-
-IF(SAMPLERATE_FOUND)
- SET(SAMPLERATE_LIBRARIES ${SAMPLERATE_LIBRARY})
- SET(SAMPLERATE_INCLUDE_DIRS ${SAMPLERATE_INCLUDE_DIR})
-ENDIF(SAMPLERATE_FOUND)
-
-MARK_AS_ADVANCED(
- SAMPLERATE_INCLUDE_DIR
- SAMPLERATE_LIBRARY
-)
diff --git a/build_files/cmake/cmake_static_check_cppcheck.py b/build_files/cmake/cmake_static_check_cppcheck.py
index f6d46904794..1c8d619a513 100644
--- a/build_files/cmake/cmake_static_check_cppcheck.py
+++ b/build_files/cmake/cmake_static_check_cppcheck.py
@@ -37,12 +37,13 @@ CHECKER_BIN = "cppcheck"
CHECKER_ARGS = [
# not sure why this is needed, but it is.
- "-I" + os.path.join(project_source_info.SOURCE_DIR, "extern/glew/include"),
+ "-I" + os.path.join(project_source_info.SOURCE_DIR, "extern", "glew", "include"),
# "--check-config", # when includes are missing
# "--enable=all", # if you want sixty hundred pedantic suggestions
]
+
def main():
source_info = project_source_info.build_info(ignore_prefix_list=CHECKER_IGNORE_PREFIX)
@@ -57,19 +58,21 @@ def main():
check_commands.append((c, cmd))
- for i, (c, cmd) in enumerate(check_commands):
- percent = 100.0 * (i / (len(check_commands)-1))
+ process_functions = []
+
+ def my_process(i, c, cmd):
+ percent = 100.0 * (i / (len(check_commands) - 1))
percent_str = "[" + ("%.2f]" % percent).rjust(7) + " %:"
-
- # if percent < 27.9:
- # continue
-
- # let cppcheck finish the line off...
- sys.stdout.write("%s " % percent_str)
sys.stdout.flush()
- process = subprocess.Popen(cmd)
- process.wait()
+ sys.stdout.write("%s " % percent_str)
+
+ return subprocess.Popen(cmd)
+
+ for i, (c, cmd) in enumerate(check_commands):
+ process_functions.append((my_process, (i, c, cmd)))
+
+ project_source_info.queue_processes(process_functions)
if __name__ == "__main__":
diff --git a/build_files/cmake/cmake_static_check_sparse.py b/build_files/cmake/cmake_static_check_sparse.py
index 9af53ed8008..aa2d56e5509 100644
--- a/build_files/cmake/cmake_static_check_sparse.py
+++ b/build_files/cmake/cmake_static_check_sparse.py
@@ -52,15 +52,21 @@ def main():
check_commands.append((c, cmd))
- for i, (c, cmd) in enumerate(check_commands):
+ def my_process(i, c, cmd):
percent = 100.0 * (i / (len(check_commands) - 1))
percent_str = "[" + ("%.2f]" % percent).rjust(7) + " %:"
- sys.stdout.write("%s %s\n" % (percent_str, c))
sys.stdout.flush()
+ sys.stdout.write("%s %s\n" % (percent_str, c))
+
+ return subprocess.Popen(cmd)
+
+ process_functions = []
+ for i, (c, cmd) in enumerate(check_commands):
+ process_functions.append((my_process, (i, c, cmd)))
+
+ project_source_info.queue_processes(process_functions)
- process = subprocess.Popen(cmd)
- process.wait()
if __name__ == "__main__":
main()
diff --git a/build_files/cmake/cmake_static_check_splint.py b/build_files/cmake/cmake_static_check_splint.py
index 3614ab48cf8..08d83337426 100644
--- a/build_files/cmake/cmake_static_check_splint.py
+++ b/build_files/cmake/cmake_static_check_splint.py
@@ -58,9 +58,9 @@ CHECKER_ARGS = [
# re-definitions, rna causes most of these
"-redef",
"-syntax",
-
+
# dummy, witjout this splint complains with:
- # /usr/include/bits/confname.h:31:27: *** Internal Bug at cscannerHelp.c:2428: Unexpanded macro not function or constant: int _PC_MAX_CANON
+ # /usr/include/bits/confname.h:31:27: *** Internal Bug at cscannerHelp.c:2428: Unexpanded macro not function or constant: int _PC_MAX_CANON
"-D_PC_MAX_CANON=0",
]
@@ -84,15 +84,21 @@ def main():
check_commands.append((c, cmd))
- for i, (c, cmd) in enumerate(check_commands):
+ def my_process(i, c, cmd):
percent = 100.0 * (i / (len(check_commands) - 1))
percent_str = "[" + ("%.2f]" % percent).rjust(7) + " %:"
sys.stdout.write("%s %s\n" % (percent_str, c))
sys.stdout.flush()
- process = subprocess.Popen(cmd)
- process.wait()
+ return subprocess.Popen(cmd)
+
+ process_functions = []
+ for i, (c, cmd) in enumerate(check_commands):
+ process_functions.append((my_process, (i, c, cmd)))
+
+ project_source_info.queue_processes(process_functions)
+
if __name__ == "__main__":
main()
diff --git a/build_files/cmake/config/blender_headless.cmake b/build_files/cmake/config/blender_headless.cmake
index bd69eed30dd..c4d64125744 100644
--- a/build_files/cmake/config/blender_headless.cmake
+++ b/build_files/cmake/config/blender_headless.cmake
@@ -11,7 +11,6 @@ set(WITH_GAMEENGINE OFF CACHE FORCE BOOL)
# disable audio, its possible some devs may want this but for now disable
# so the python module doesnt hold the audio device and loads quickly.
set(WITH_AUDASPACE OFF CACHE FORCE BOOL)
-set(WITH_SAMPLERATE OFF CACHE FORCE BOOL)
set(WITH_FFTW3 OFF CACHE FORCE BOOL)
set(WITH_JACK OFF CACHE FORCE BOOL)
set(WITH_SDL OFF CACHE FORCE BOOL)
diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake
index f09a8058f14..6791028a888 100644
--- a/build_files/cmake/config/blender_lite.cmake
+++ b/build_files/cmake/config/blender_lite.cmake
@@ -38,6 +38,5 @@ set(WITH_OPENCOLLADA OFF CACHE FORCE BOOL)
set(WITH_OPENMP OFF CACHE FORCE BOOL)
set(WITH_PYTHON_INSTALL OFF CACHE FORCE BOOL)
set(WITH_RAYOPTIMIZATION OFF CACHE FORCE BOOL)
-set(WITH_SAMPLERATE OFF CACHE FORCE BOOL)
set(WITH_SDL OFF CACHE FORCE BOOL)
set(WITH_X11_XINPUT OFF CACHE FORCE BOOL)
diff --git a/build_files/cmake/config/bpy_module.cmake b/build_files/cmake/config/bpy_module.cmake
index 5392705f0dc..6279f06214f 100644
--- a/build_files/cmake/config/bpy_module.cmake
+++ b/build_files/cmake/config/bpy_module.cmake
@@ -18,7 +18,6 @@ set(WITH_GAMEENGINE OFF CACHE FORCE BOOL)
# disable audio, its possible some devs may want this but for now disable
# so the python module doesnt hold the audio device and loads quickly.
set(WITH_AUDASPACE OFF CACHE FORCE BOOL)
-set(WITH_SAMPLERATE OFF CACHE FORCE BOOL)
set(WITH_FFTW3 OFF CACHE FORCE BOOL)
set(WITH_JACK OFF CACHE FORCE BOOL)
set(WITH_SDL OFF CACHE FORCE BOOL)
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 9671bffe2bd..db6c080d98d 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -187,9 +187,6 @@ macro(SETUP_LIBDIRS)
if(WITH_CODEC_SNDFILE)
link_directories(${SNDFILE_LIBPATH})
endif()
- if(WITH_SAMPLERATE)
- link_directories(${SAMPLERATE_LIBPATH})
- endif()
if(WITH_FFTW3)
link_directories(${FFTW3_LIBPATH})
endif()
@@ -219,6 +216,7 @@ macro(setup_liblinks
${JPEG_LIBRARIES}
${PNG_LIBRARIES}
${ZLIB_LIBRARIES}
+ ${FREETYPE_LIBRARY}
${PLATFORM_LINKLIBS})
# since we are using the local libs for python when compiling msvc projects, we need to add _d when compiling debug versions
@@ -239,15 +237,8 @@ macro(setup_liblinks
target_link_libraries(${target} ${GLEW_LIBRARY})
endif()
- target_link_libraries(${target}
- ${OPENGL_glu_LIBRARY}
- ${JPEG_LIBRARIES}
- ${PNG_LIBRARIES}
- ${ZLIB_LIBRARIES}
- ${FREETYPE_LIBRARY})
-
if(WITH_INTERNATIONAL)
- target_link_libraries(${target} ${GETTEXT_LIB})
+ target_link_libraries(${target} ${GETTEXT_LIBRARIES})
if(WIN32 AND NOT UNIX)
target_link_libraries(${target} ${ICONV_LIBRARIES})
@@ -266,9 +257,6 @@ macro(setup_liblinks
if(WITH_CODEC_SNDFILE)
target_link_libraries(${target} ${SNDFILE_LIBRARIES})
endif()
- if(WITH_SAMPLERATE)
- target_link_libraries(${target} ${SAMPLERATE_LIBRARIES})
- endif()
if(WITH_SDL)
target_link_libraries(${target} ${SDL_LIBRARY})
endif()
@@ -298,6 +286,11 @@ macro(setup_liblinks
target_link_libraries(${target} ${OPENJPEG_LIBRARIES})
endif()
if(WITH_CODEC_FFMPEG)
+
+ # Strange!, without this ffmpeg gives linking errors (on linux)
+ # even though its linked above
+ target_link_libraries(${target} ${OPENGL_glu_LIBRARY})
+
target_link_libraries(${target} ${FFMPEG_LIBRARIES})
endif()
if(WITH_OPENCOLLADA)
@@ -338,44 +331,59 @@ macro(setup_liblinks
endif()
endmacro()
-macro(TEST_SSE_SUPPORT)
+macro(TEST_SSE_SUPPORT
+ _sse_flags
+ _sse2_flags)
+
include(CheckCSourceRuns)
# message(STATUS "Detecting SSE support")
- if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
- set(CMAKE_REQUIRED_FLAGS "-msse -msse2")
+ if(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))
+ set(${_sse_flags} "-msse")
+ set(${_sse2_flags} "-msse2")
elseif(MSVC)
- set(CMAKE_REQUIRED_FLAGS "/arch:SSE2") # TODO, SSE 1 ?
+ set(${_sse_flags} "/arch:SSE")
+ set(${_sse2_flags} "/arch:SSE2")
+ elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
+ set(${_sse_flags} "") # icc defaults to -msse
+ set(${_sse2_flags} "-msse2")
+ else()
+ message(WARNING "SSE flags for this compiler: '${CMAKE_C_COMPILER_ID}' not known")
+ set(${_sse_flags})
+ set(${_sse2_flags})
endif()
- if(NOT DEFINED ${SUPPORT_SSE_BUILD})
+ set(CMAKE_REQUIRED_FLAGS "${${_sse_flags}} ${${_sse2_flags}}")
+
+ if(NOT DEFINED SUPPORT_SSE_BUILD)
+ # result cached
check_c_source_runs("
#include <xmmintrin.h>
- int main() { __m128 v = _mm_setzero_ps(); return 0; }"
+ int main(void) { __m128 v = _mm_setzero_ps(); return 0; }"
SUPPORT_SSE_BUILD)
-
+
if(SUPPORT_SSE_BUILD)
message(STATUS "SSE Support: detected.")
else()
message(STATUS "SSE Support: missing.")
endif()
- set(${SUPPORT_SSE_BUILD} ${SUPPORT_SSE_BUILD} CACHE INTERNAL "SSE Test")
- endif()
+ endif()
- if(NOT DEFINED ${SUPPORT_SSE2_BUILD})
+ if(NOT DEFINED SUPPORT_SSE2_BUILD)
+ # result cached
check_c_source_runs("
#include <emmintrin.h>
- int main() { __m128d v = _mm_setzero_pd(); return 0; }"
+ int main(void) { __m128d v = _mm_setzero_pd(); return 0; }"
SUPPORT_SSE2_BUILD)
if(SUPPORT_SSE2_BUILD)
message(STATUS "SSE2 Support: detected.")
else()
message(STATUS "SSE2 Support: missing.")
- endif()
- set(${SUPPORT_SSE2_BUILD} ${SUPPORT_SSE2_BUILD} CACHE INTERNAL "SSE2 Test")
+ endif()
endif()
+ unset(CMAKE_REQUIRED_FLAGS)
endmacro()
# when we have warnings as errors applied globally this
@@ -494,7 +502,7 @@ macro(get_blender_version)
if(${_out_version_char_empty})
set(BLENDER_VERSION_CHAR_INDEX "0")
else()
- set(_char_ls a b c d e f g h i j k l m n o p q r s t u v w q y z)
+ set(_char_ls a b c d e f g h i j k l m n o p q r s t u v w x y z)
list(FIND _char_ls ${BLENDER_VERSION_CHAR} _out_version_char_index)
math(EXPR BLENDER_VERSION_CHAR_INDEX "${_out_version_char_index} + 1")
unset(_char_ls)
@@ -511,7 +519,7 @@ endmacro()
# hacks to override initial project settings
-# these macros must be called directly before/after project(Blender)
+# these macros must be called directly before/after project(Blender)
macro(blender_project_hack_pre)
# ----------------
# MINGW HACK START
@@ -553,8 +561,10 @@ macro(blender_project_hack_post)
# have libs we define and that cmake & scons builds match.
set(CMAKE_C_STANDARD_LIBRARIES "" CACHE STRING "" FORCE)
set(CMAKE_CXX_STANDARD_LIBRARIES "" CACHE STRING "" FORCE)
- mark_as_advanced(CMAKE_C_STANDARD_LIBRARIES)
- mark_as_advanced(CMAKE_CXX_STANDARD_LIBRARIES)
+ mark_as_advanced(
+ CMAKE_C_STANDARD_LIBRARIES
+ CMAKE_CXX_STANDARD_LIBRARIES
+ )
endif()
unset(_reset_standard_libraries)
diff --git a/build_files/cmake/project_source_info.py b/build_files/cmake/project_source_info.py
index c4b83d20ea5..c636d778aaa 100644
--- a/build_files/cmake/project_source_info.py
+++ b/build_files/cmake/project_source_info.py
@@ -27,7 +27,6 @@ __all__ = (
)
import os
-import sys
from os.path import join, dirname, normpath, abspath
SOURCE_DIR = join(dirname(__file__), "..", "..")
@@ -40,11 +39,6 @@ def is_c_header(filename):
return (ext in (".h", ".hpp", ".hxx"))
-def is_c_header(filename):
- ext = os.path.splitext(filename)[1]
- return (ext in (".h", ".hpp", ".hxx"))
-
-
def is_c(filename):
ext = os.path.splitext(filename)[1]
return (ext in (".c", ".cpp", ".cxx", ".m", ".mm", ".rc"))
@@ -79,6 +73,7 @@ def do_ignore(filepath, ignore_prefix_list):
def makefile_log():
import subprocess
+ import time
# Check blender is not 2.5x until it supports playback again
print("running make with --dry-run ...")
process = subprocess.Popen(["make", "--always-make", "--dry-run", "--keep-going", "VERBOSE=1"],
@@ -153,6 +148,45 @@ def build_info(use_c=True, use_cxx=True, ignore_prefix_list=None):
return source
+# could be moved elsewhere!, this just happens to be used by scripts that also
+# use this module.
+def queue_processes(process_funcs, job_total=-1):
+ """ Takes a list of function arg pairs, each function must return a process
+ """
+ import sys
+
+ if job_total == -1:
+ import multiprocessing
+ job_total = multiprocessing.cpu_count()
+ del multiprocessing
+
+ if job_total == 1:
+ for func, args in process_funcs:
+ sys.stdout.flush()
+ sys.stderr.flush()
+
+ process = func(*args)
+ process.wait()
+ else:
+ import time
+
+ processes = []
+ for func, args in process_funcs:
+ # wait until a thread is free
+ while 1:
+ processes[:] = [p for p in processes if p.poll() is None]
+
+ if len(processes) <= job_total:
+ break
+ else:
+ time.sleep(0.1)
+
+ sys.stdout.flush()
+ sys.stderr.flush()
+
+ processes.append(func(*args))
+
+
def main():
if not os.path.exists(join(CMAKE_DIR, "CMakeCache.txt")):
print("This script must run from the cmake build dir")