diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-08-18 12:18:55 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-08-18 12:18:55 +0300 |
commit | 9f25b2f278c3c5609828d5ac780c9f8dbadd9be2 (patch) | |
tree | 49a311388f95640a99099c2f98491c65215d93a7 | |
parent | 4d71579d3ba21ed1e51fc7c2d03e2d87f0327d77 (diff) | |
parent | 4c22343271966752094b1e64af45fc5a5c6109b9 (diff) |
Merge branch 'master' into blender2.8
-rw-r--r-- | CMakeLists.txt | 6 | ||||
-rw-r--r-- | build_files/build_environment/cmake/alembic.cmake | 2 | ||||
-rw-r--r-- | build_files/build_environment/cmake/numpy.cmake | 2 | ||||
-rw-r--r-- | build_files/build_environment/cmake/openexr.cmake | 12 | ||||
-rw-r--r-- | build_files/build_environment/cmake/openvdb.cmake | 1 | ||||
-rw-r--r-- | build_files/build_environment/cmake/osl.cmake | 5 | ||||
-rw-r--r-- | build_files/build_environment/cmake/versions.cmake | 9 | ||||
-rw-r--r-- | source/blender/windowmanager/WM_api.h | 3 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_files.c | 38 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_init_exit.c | 2 | ||||
-rw-r--r-- | source/creator/creator_args.c | 18 |
11 files changed, 77 insertions, 21 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index e3fe49fce2c..54e2626e30e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 diff --git a/build_files/build_environment/cmake/alembic.cmake b/build_files/build_environment/cmake/alembic.cmake index b2e5a3d6754..5ca142be124 100644 --- a/build_files/build_environment/cmake/alembic.cmake +++ b/build_files/build_environment/cmake/alembic.cmake @@ -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() diff --git a/build_files/build_environment/cmake/numpy.cmake b/build_files/build_environment/cmake/numpy.cmake index fa8d9ebccba..698fae4f666 100644 --- a/build_files/build_environment/cmake/numpy.cmake +++ b/build_files/build_environment/cmake/numpy.cmake @@ -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() diff --git a/build_files/build_environment/cmake/openexr.cmake b/build_files/build_environment/cmake/openexr.cmake index f9e414a2731..3e5ef5d8f0a 100644 --- a/build_files/build_environment/cmake/openexr.cmake +++ b/build_files/build_environment/cmake/openexr.cmake @@ -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 ) diff --git a/build_files/build_environment/cmake/openvdb.cmake b/build_files/build_environment/cmake/openvdb.cmake index 69dff9b2b57..5b70d184201 100644 --- a/build_files/build_environment/cmake/openvdb.cmake +++ b/build_files/build_environment/cmake/openvdb.cmake @@ -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 diff --git a/build_files/build_environment/cmake/osl.cmake b/build_files/build_environment/cmake/osl.cmake index add92a2fc0b..3cab1951044 100644 --- a/build_files/build_environment/cmake/osl.cmake +++ b/build_files/build_environment/cmake/osl.cmake @@ -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 diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake index 18217f6c446..64e87f2830c 100644 --- a/build_files/build_environment/cmake/versions.cmake +++ b/build_files/build_environment/cmake/versions.cmake @@ -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() diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 45f6e188483..39364ee27be 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -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); diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index e44081bef54..196e6cfa5ce 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -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)) { diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index 4b0d751a7ce..719544403dd 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -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); diff --git a/source/creator/creator_args.c b/source/creator/creator_args.c index 283585598bf..5e9cec660e1 100644 --- a/source/creator/creator_args.c +++ b/source/creator/creator_args.c @@ -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? */ |