forked from bartvdbraak/blender
Merge branch 'master' into blender2.8
This commit is contained in:
commit
9f25b2f278
@ -115,7 +115,11 @@ enable_testing()
|
||||
|
||||
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" FORCE)
|
||||
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE)
|
||||
set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests CACHE INTERNAL "" FORCE)
|
||||
if(MSVC)
|
||||
set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests/$<CONFIG>/ CACHE INTERNAL "" FORCE)
|
||||
else()
|
||||
set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests/ CACHE INTERNAL "" FORCE)
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set default config options
|
||||
|
@ -82,7 +82,7 @@ if(WIN32)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_alembic after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/alembic/lib/alembic.lib ${HARVEST_TARGET}/alembic/lib/alembic_d.lib &&
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/alembic/lib/alembic.lib ${HARVEST_TARGET}/alembic/lib/alembic_d.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
@ -55,7 +55,7 @@ ExternalProject_Add(external_numpy
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_numpy after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}.tar.gz
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
@ -31,16 +31,6 @@ if(WIN32)
|
||||
-DOPENEXR_BUILD_TESTS=Off
|
||||
-DOPENEXR_BUILD_VIEWERS=Off
|
||||
-DOPENEXR_BUILD_UTILS=Off
|
||||
#yaml-cpp > 0.5.0 requires boost.
|
||||
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||
-DBoost_USE_MULTITHREADED=ON
|
||||
-DUSE_STATIC_BOOST=On
|
||||
-DBoost_USE_STATIC_LIBS=ON
|
||||
-DBoost_USE_STATIC_RUNTIME=ON
|
||||
-DBoost_DEBUG=ON
|
||||
-DBOOST_ROOT=${LIBDIR}/boost
|
||||
-DBoost_NO_SYSTEM_PATHS=ON
|
||||
-DOCIO_USE_BOOST_PTR=On
|
||||
)
|
||||
ExternalProject_Add(external_openexr
|
||||
URL ${OPENEXR_URI}
|
||||
@ -54,7 +44,7 @@ if(WIN32)
|
||||
ExternalProject_Add_Step(external_openexr after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/lib ${HARVEST_TARGET}/openexr/lib
|
||||
#libs have moved between versions, just duplicate it for now.
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/lib ${HARVEST_TARGET}/ilmbase/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/lib ${LIBDIR}/ilmbase/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/include ${HARVEST_TARGET}/openexr/include
|
||||
DEPENDEES install
|
||||
)
|
||||
|
@ -32,6 +32,7 @@ set(OPENVDB_EXTRA_ARGS
|
||||
-DWITH_BLOSC=ON
|
||||
-DBLOSC_INCLUDE_DIR=${LIBDIR}/blosc/include/
|
||||
-DBLOSC_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
||||
-DBLOSC_blosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
||||
-DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
|
||||
-DOPENVDB_BUILD_UNITTESTS=Off
|
||||
-DOPENVDB_BUILD_PYTHON_MODULE=Off
|
||||
|
@ -25,10 +25,12 @@ if(WIN32)
|
||||
else()
|
||||
set(OSL_SIMD_FLAGS -DOIIO_NOSIMD=1 -DOIIO_SIMD=sse2)
|
||||
endif()
|
||||
SET(OSL_PLATFORM_FLAGS -DLINKSTATIC=ON)
|
||||
else()
|
||||
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES)
|
||||
set(OSL_FLEX_BISON)
|
||||
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
|
||||
SET(OSL_PLATFORM_FLAGS)
|
||||
endif()
|
||||
|
||||
set(OSL_ILMBASE_CUSTOM_LIBRARIES "${LIBDIR}/ilmbase/lib/Imath${ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/Half{ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/IlmThread${ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/Iex${ILMBASE_VERSION_POSTFIX}.lib")
|
||||
@ -65,8 +67,7 @@ set(OSL_EXTRA_ARGS
|
||||
${OSL_FLEX_BISON}
|
||||
-DCMAKE_CXX_STANDARD_LIBRARIES=${OSL_CMAKE_CXX_STANDARD_LIBRARIES}
|
||||
-DBUILDSTATIC=ON
|
||||
# Don't use because it statically links pthreads, same as OIIO.
|
||||
# -DLINKSTATIC=ON
|
||||
${OSL_PLATFORM_FLAGS}
|
||||
-DOSL_BUILD_PLUGINS=Off
|
||||
-DSTOP_ON_WARNING=OFF
|
||||
-DUSE_LLVM_BITCODE=OFF
|
||||
|
@ -47,7 +47,13 @@ set(PTHREADS_SHA512 9c06e85310766834370c3dceb83faafd397da18a32411ca7645c8eb6b949
|
||||
|
||||
set(ILMBASE_VERSION 2.3.0)
|
||||
if (WIN32)
|
||||
set(ILMBASE_VERSION_POSTFIX -2_3_s)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
set(ILMBASE_VERSION_POSTFIX -2_3_s)
|
||||
set(OPENEXR_VERSION_POSTFIX -2_3_s)
|
||||
else()
|
||||
set(ILMBASE_VERSION_POSTFIX -2_3_s_d)
|
||||
set(OPENEXR_VERSION_POSTFIX -2_3_s_d)
|
||||
endif()
|
||||
else()
|
||||
set(ILMBASE_VERSION_POSTFIX)
|
||||
endif()
|
||||
@ -56,7 +62,6 @@ set(ILMBASE_HASH 354bf86de3b930ab87ac63619d60c860)
|
||||
|
||||
set(OPENEXR_VERSION 2.3.0)
|
||||
if (WIN32) #release 2.3.0 tarball has broken cmake support
|
||||
set(OPENEXR_VERSION_POSTFIX -2_3_s)
|
||||
set(OPENEXR_URI https://github.com/openexr/openexr/archive/0ac2ea34c8f3134148a5df4052e40f155b76f6fb.tar.gz)
|
||||
set(OPENEXR_HASH ed159435d508240712fbaaa21d94bafb)
|
||||
else()
|
||||
|
@ -82,6 +82,9 @@ typedef struct wmGizmoMap wmGizmoMap;
|
||||
typedef struct wmGizmoMapType wmGizmoMapType;
|
||||
|
||||
/* general API */
|
||||
void WM_init_state_app_template_set(const char *app_template);
|
||||
const char *WM_init_state_app_template_get(void);
|
||||
|
||||
void WM_init_state_size_set (int stax, int stay, int sizx, int sizy);
|
||||
void WM_init_state_fullscreen_set(void);
|
||||
void WM_init_state_normal_set(void);
|
||||
|
@ -668,6 +668,33 @@ bool WM_file_read(bContext *C, const char *filepath, ReportList *reports)
|
||||
|
||||
}
|
||||
|
||||
struct {
|
||||
char app_template[64];
|
||||
bool override;
|
||||
} wm_init_state_app_template = {0};
|
||||
|
||||
/**
|
||||
* Used for setting app-template from the command line:
|
||||
* - non-empty string: overrides.
|
||||
* - empty string: override, using no app template.
|
||||
* - NULL: clears override.
|
||||
*/
|
||||
void WM_init_state_app_template_set(const char *app_template)
|
||||
{
|
||||
if (app_template) {
|
||||
STRNCPY(wm_init_state_app_template.app_template, app_template);
|
||||
wm_init_state_app_template.override = true;
|
||||
}
|
||||
else {
|
||||
wm_init_state_app_template.app_template[0] = '\0';
|
||||
wm_init_state_app_template.override = false;
|
||||
}
|
||||
}
|
||||
|
||||
const char *WM_init_state_app_template_get(void)
|
||||
{
|
||||
return wm_init_state_app_template.override ? wm_init_state_app_template.app_template : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called on startup, (context entirely filled with NULLs)
|
||||
@ -776,7 +803,10 @@ int wm_homefile_read(
|
||||
}
|
||||
|
||||
if ((app_template != NULL) && (app_template[0] != '\0')) {
|
||||
BKE_appdir_app_template_id_search(app_template, app_template_system, sizeof(app_template_system));
|
||||
if (!BKE_appdir_app_template_id_search(app_template, app_template_system, sizeof(app_template_system))) {
|
||||
/* Can safely continue with code below, just warn it's not found. */
|
||||
BKE_reportf(reports, RPT_WARNING, "Application Template '%s' not found.", app_template);
|
||||
}
|
||||
|
||||
/* Insert template name into startup file. */
|
||||
|
||||
@ -1672,9 +1702,13 @@ static int wm_homefile_read_exec(bContext *C, wmOperator *op)
|
||||
|
||||
/* Always load preferences when switching templates. */
|
||||
use_userdef = true;
|
||||
|
||||
/* Turn override off, since we're explicitly loading a different app-template. */
|
||||
WM_init_state_app_template_set(NULL);
|
||||
}
|
||||
else {
|
||||
app_template = NULL;
|
||||
/* Normally NULL, only set when overriding from the command-line. */
|
||||
app_template = WM_init_state_app_template_get();
|
||||
}
|
||||
|
||||
if (wm_homefile_read(C, op->reports, use_factory_settings, use_empty_data, use_userdef, filepath, app_template)) {
|
||||
|
@ -250,7 +250,7 @@ void WM_init(bContext *C, int argc, const char **argv)
|
||||
WM_msgbus_types_init();
|
||||
|
||||
/* get the default database, plus a wm */
|
||||
wm_homefile_read(C, NULL, G.factory_startup, false, true, NULL, NULL);
|
||||
wm_homefile_read(C, NULL, G.factory_startup, false, true, NULL, WM_init_state_app_template_get());
|
||||
|
||||
BLT_lang_set(NULL);
|
||||
|
||||
|
@ -565,6 +565,7 @@ static int arg_handle_print_help(int UNUSED(argc), const char **UNUSED(argv), vo
|
||||
|
||||
printf("\n");
|
||||
printf("Misc Options:\n");
|
||||
BLI_argsPrintArgDoc(ba, "--app-template");
|
||||
BLI_argsPrintArgDoc(ba, "--factory-startup");
|
||||
printf("\n");
|
||||
BLI_argsPrintArgDoc(ba, "--env-system-datafiles");
|
||||
@ -974,6 +975,22 @@ static int arg_handle_debug_fpe_set(int UNUSED(argc), const char **UNUSED(argv),
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const char arg_handle_app_template_doc[] =
|
||||
"\n\tSet the application template, use 'default' for none."
|
||||
;
|
||||
static int arg_handle_app_template(int argc, const char **argv, void *UNUSED(data))
|
||||
{
|
||||
if (argc > 1) {
|
||||
const char *app_template = STREQ(argv[1], "default") ? "" : argv[1];
|
||||
WM_init_state_app_template_set(app_template);
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
printf("\nError: App template must follow '--app-template'.\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static const char arg_handle_factory_startup_set_doc[] =
|
||||
"\n\tSkip reading the " STRINGIFY(BLENDER_STARTUP_FILE) " in the users home directory."
|
||||
;
|
||||
@ -1898,6 +1915,7 @@ void main_args_setup(bContext *C, bArgs *ba)
|
||||
|
||||
BLI_argsAdd(ba, 1, NULL, "--verbose", CB(arg_handle_verbosity_set), NULL);
|
||||
|
||||
BLI_argsAdd(ba, 1, NULL, "--app-template", CB(arg_handle_app_template), NULL);
|
||||
BLI_argsAdd(ba, 1, NULL, "--factory-startup", CB(arg_handle_factory_startup_set), NULL);
|
||||
|
||||
/* TODO, add user env vars? */
|
||||
|
Loading…
Reference in New Issue
Block a user