Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design and implement strategy for deprecating TriBITS code #429

Closed
bartlettroscoe opened this issue Nov 3, 2021 · 11 comments
Closed

Design and implement strategy for deprecating TriBITS code #429

bartlettroscoe opened this issue Nov 3, 2021 · 11 comments

Comments

@bartlettroscoe
Copy link
Member

bartlettroscoe commented Nov 3, 2021

Parent Epic: #411

Description

As noted in trilinos/Trilinos#9894 (comment), we need to consider how to handle deprecated functions and macros in TriBITS. I don't think it is desirable to just use raw message(DEPRECATION <msg>) since that might generate thousands of lines of output if the deprecated function/macro is used in a loop. But it would be nice to have a system where the user can decide to show deprecated code or not. Also, it would be good to allow the separation of deprecation warnings for TriBITS from deprecations for other CMake modules and packages and even the user's own project functions.

A setup similar to what is described in Regulated Backward Compatibility and Deprecated Code would be good but apply it to TriBITS CMake code itself with respect to projects that use TriBITS.

What would likely be good would be to define and use a function like:

  tribits_deprecated(<msg>)

which would be called in any deprecated TriBITS function or macro. By default, this would call:

  message(DEPRECATION <msg>)

but when TRIBITS_HIDE_DEPRECATED_TRIBITS_WARNING_MESSAGES=TRUE, then no deprecated warnings would be printed at all.

@e10harvey
Copy link
Collaborator

I think having a way to enable/disable deprecation warning or error messages is sufficient. I would suggest adding one function for this purpose:

tribits_deprecated(msg):
  if CMAKE_ERROR_DEPRECATED
    message(FATAL_ERROR, msg)
  else if CMAKE_WARN_DEPRECATED
    message(WARN, msg)
  else
    return

@bartlettroscoe
Copy link
Member Author

bartlettroscoe commented Nov 5, 2021

@e10harvey, here is the idea demonstrated with the CMake script deprecated_msg.cmake:

function(tribits_deprecated msg)
  if (NOT TRIBITS_HIDE_DEPRECATED_TRIBITS_WARNING_MESSAGES)
    message(DEPRECATION "${msg}")
  endif()
endfunction()

# Example deprecated TriBITS function

if (NOT TRIBITS_HIDE_TRIBITS_DEPRECATED_CODE)

function(tribits_deprecated_function)
  tribits_deprecated("TriBITS function '${CMAKE_CURRENT_FUNCTION}()' is deprecated!")
endfunction()

endif() # TRIBITS_HIDE_TRIBITS_DEPRECATED_CODE

# User code

function(project_function)

  tribits_deprecated_function()

  message(DEPRECATION "Project function '${CMAKE_CURRENT_FUNCTION}()' is deprecated!")

endfunction()

project_function()

Here is the output and error return codes you get for different use cases (using CMake 3.17.1):

Default (show deprecated warnings but do not trigger fail)

$ cmake -P deprecated_msg.cmake 
CMake Deprecation Warning at deprecated_msg.cmake:3 (message):
  TriBITS function 'tribits_deprecated_function()' is deprecated!
Call Stack (most recent call first):
  deprecated_msg.cmake:12 (tribits_deprecated)
  deprecated_msg.cmake:21 (tribits_deprecated_function)
  deprecated_msg.cmake:27 (project_function)


CMake Deprecation Warning at deprecated_msg.cmake:23 (message):
  Project function 'project_function()' is deprecated!
Call Stack (most recent call first):
  deprecated_msg.cmake:27 (project_function)



$ echo $?
0

Hide all deprecated warnings in all CMake code (in TriBITS and the project's own CMake code):

$ cmake -DCMAKE_WARN_DEPRECATED=FALSE -P deprecated_msg.cmake

$ echo $?
0

Only hide deprecated code in TriBITS but show deprecated code in project:

$ cmake -DTRIBITS_HIDE_DEPRECATED_TRIBITS_WARNING_MESSAGES=TRUE -P deprecated_msg.cmake
CMake Deprecation Warning at deprecated_msg.cmake:23 (message):
  Project function 'project_function()' is deprecated!
Call Stack (most recent call first):
  deprecated_msg.cmake:27 (project_function)

$ echo $?
0

Elevate deprecated warnings to errors (in TriBITS and project code)

$ cmake -DCMAKE_ERROR_DEPRECATED=TRUE -P deprecated_msg.cmake
CMake Deprecation Error at deprecated_msg.cmake:3 (message):
  TriBITS function 'tribits_deprecated_function()' is deprecated!
Call Stack (most recent call first):
  deprecated_msg.cmake:12 (tribits_deprecated)
  deprecated_msg.cmake:21 (tribits_deprecated_function)
  deprecated_msg.cmake:27 (project_function)

$ echo $?
1

Only show and elevate deprecated warnings to errors in project code:

 cmake -DTRIBITS_HIDE_DEPRECATED_TRIBITS_WARNING_MESSAGES=TRUE -DCMAKE_ERROR_DEPRECATED=TRUE -P deprecated_msg.cmake
CMake Deprecation Error at deprecated_msg.cmake:23 (message):
  Project function 'project_function()' is deprecated!
Call Stack (most recent call first):
  deprecated_msg.cmake:27 (project_function)

$ echo $?
1

Validate that project is not using any deprecated TriBITS function for sure:

$ cmake -DTRIBITS_HIDE_TRIBITS_DEPRECATED_CODE=TRUE -P deprecated_msg.cmake
CMake Error at deprecated_msg.cmake:21 (tribits_deprecated_function):
  Unknown CMake command "tribits_deprecated_function".
Call Stack (most recent call first):
  deprecated_msg.cmake:27 (project_function)

That latter has the advantage over just printing a deprecated error message in that it validates that the deprecated code is actually gone.

Note that another purpose of:

if (NOT TRIBITS_HIDE_TRIBITS_DEPRECATED_CODE)

# Deprecated code ...

endif() # TRIBITS_HIDE_TRIBITS_DEPRECATED_CODE

is that it allows you to write a tool like unifdef but for CMake code.

@bartlettroscoe bartlettroscoe changed the title Develop and implement strategy for deprecating TriBITS code Design and implement strategy for deprecating TriBITS code Nov 5, 2021
@bartlettroscoe
Copy link
Member Author

@KyleFromKitware, would you be willing to look into implementing this for TriBITS? I know we are very underspent on the contract for help with TriBITS and I could use help with stuff like this (beyond just reviews).

@KyleFromKitware
Copy link
Collaborator

KyleFromKitware commented Oct 28, 2022

Perhaps it would be best to have a single variable called TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE=<IGNORE|WARN|ERROR>. If it's IGNORE then all deprecated code works without warning. If it's WARN (default) then all deprecated code works with a warning. If it's ERROR then all deprecated code exits with FATAL_ERROR as soon as it's called. For example:

function(tribits_deprecated function_name)
  if("${TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE}" STREQUAL "" OR "${TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE}" STREQUAL "WARN")
    message(DEPRECATION "${function_name} is deprecated")
  elseif("${TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE}" STREQUAL "ERROR")
    message(FATAL_ERROR "${function_name} is deprecated")
  elseif(NOT "${TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE}" STREQUAL "IGNORE")
    message(FATAL_ERROR "Invalid value for TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE: \"${TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE}\"")
  endif()
endfunction()

# ...

function(tribits_some_deprecated_function)
  tribits_deprecated(tribits_some_deprecated_function)

  # Do some deprecated stuff...
endfunction()

@bartlettroscoe
Copy link
Member Author

@KyleFromKitware, I have found that it is really useful to support both SEND_ERROR and FATAL_ERROR. When developing on a CMake project where everything is clear, it is good to set checking to FATAL_ERROR so that new errors are easier to see. But when you first turn checks on for an existing CMake project with lots of potential violations, you would typically like to use SEND_ERROR so that you can see all of the violations in a single CMake configure, but developers can't just ignore them. (I have found that many Trilinos developers and users just ignore CMake warnings.)

@bartlettroscoe
Copy link
Member Author

@KyleFromKitware, also, when deprecating code, it is often useful to provide an informative error message that tells the developer/user how to fix their code or at least where to look for that documentation (e.g. in the CHANGELOG.md file).

@bartlettroscoe
Copy link
Member Author

@KyleFromKitware, with the basic support for the new tribits_deprecated[_command]() functions implemented in PR #538, would you be willing to apply this some of the existing TriBITS code that is deprecated? Here are some places where I think these new functions could be used:

tribits/core/package_arch/TribitsAddExecutable.cmake:378:      " is deprecated.  Instead, pass them through 'TARGET_DEFINES'.  The 'DEFINES'"
tribits/core/package_arch/TribitsAddExecutable.cmake:661:        " is deprecated!  Instead, please pass through TESTONLYLIBS instead!"
tribits/core/package_arch/TribitsAddExecutable.cmake:662:        "  DEPLIBS is deprecated!")
tribits/core/package_arch/TribitsAddExecutable.cmake:666:      " is deprecated!  The library '${depLib}' appears to be a"
tribits/core/package_arch/TribitsAddExecutable.cmake:677:        " DEPLIBS is deprecated!  Instead, pass through IMPORTEDLIBS!"
tribits/core/package_arch/TribitsAddExecutable.cmake:678:        "  DEPLIBS is deprecated!"

tribits/core/package_arch/TribitsAddLibrary.cmake:633:# ToDo: Turn the below deprecated WARNING messages to FATAL_ERROR once we
tribits/core/package_arch/TribitsAddLibrary.cmake:675:        "  Such usage is deprecated (and this warning will soon become an error)!"
tribits/core/package_arch/TribitsAddLibrary.cmake:681:      # ToDo: Turn the above to FATAL_ERROR after dropping deprecated code
tribits/core/package_arch/TribitsAddLibrary.cmake:685:        " cmake project!  Such usage is deprecated (and"
tribits/core/package_arch/TribitsAddLibrary.cmake:695:        " a lib defined in the current cmake project!  Such usage is deprecated (and"
tribits/core/package_arch/TribitsAddLibrary.cmake:718:# ToDo: Turn the below deprecated WARNING messages to FATAL_ERROR once we
tribits/core/package_arch/TribitsAddLibrary.cmake:730:        "  Such usage is deprecated (and this warning will soon become an error)!"
tribits/core/package_arch/TribitsAddLibrary.cmake:732:      # ToDo: Turn the above to FATAL_ERROR after dropping deprecated code

tribits/core/package_arch/TribitsIncludeDirectories.cmake:89:# Deprecated.  Use tribits_include_directories() instead!
tribits/core/package_arch/TribitsIncludeDirectories.cmake:105:#    message(WARNING "Warning: the override include_directories() is deprecated,"

tribits/core/package_arch/TribitsTplDeclareLibraries.cmake:44:    "WARNING: tribits_tpl_declare_libraries() is deprecated, instead use"

tribits/core/package_arch/TribitsAddExecutableAndTest.cmake:212:  tribits_fwd_parse_arg(CALL_ARGS DEPLIBS)  # Deprecated

tribits/core/package_arch/TribitsGeneralMacros.cmake:341:    "WARNING: tribits_set_ss_for_dev_mode() is deprecated,"

tribits/core/package_arch/TribitsTestCategories.cmake:100:      message_wrapper(WARNING "Warning: The test category 'WEEKLY' is deprecated"

tribits/core/package_arch/TribitsSetUpEnabledOnlyDependencies.cmake:70:      " is deprecated!  Please instead set"

tribits/core/package_arch/TribitsListHelpers.cmake:123:  message(WARNING "package_disable_on_platforms() is deprecated!"
tribits/core/package_arch/TribitsListHelpers.cmake:139:      message("-- " "WARNING: ${THING_TYPE} ${THING_NAME} TESTGROUP 'PS' is deprecated."
tribits/core/package_arch/TribitsListHelpers.cmake:145:      message("-- " "WARNING: ${THING_TYPE} ${THING_NAME} TESTGROUP 'SS' is deprecated."
tribits/core/package_arch/TribitsListHelpers.cmake:151:      message("-- " "WARNING: ${THING_TYPE} ${THING_NAME} TESTGROUP 'TS' is deprecated."

tribits/core/utils/ParseVariableArguments.cmake:45:macro(parse_arguments_deprecated_warning)
tribits/core/utils/ParseVariableArguments.cmake:46:  message(DEPRECATION "parse_arguments() is deprecated and should not be used."
tribits/core/utils/ParseVariableArguments.cmake:50:parse_arguments_deprecated_warning()
tribits/core/utils/ParseVariableArguments.cmake:205:  parse_arguments_deprecated_warning()

tribits/core/utils/AppendStringVar.cmake:58:# **DEPRECATED**: Instead, use::

@bartlettroscoe
Copy link
Member Author

With the merge of #538 and #539, I think this is mostly complete. I will move this into review and will wait to close this until after I have been able to update the TriBITS version in Trilinos and see what happens.

@bartlettroscoe bartlettroscoe moved this from In Progress to In Review in TriBITS Refactor Nov 3, 2022
bartlettroscoe added a commit to bartlettroscoe/TriBITS that referenced this issue Nov 3, 2022
bartlettroscoe added a commit to bartlettroscoe/TriBITS that referenced this issue Dec 7, 2022
@bartlettroscoe bartlettroscoe moved this from In Review to In Progress in TriBITS Refactor Dec 14, 2022
@bartlettroscoe
Copy link
Member Author

This issue is needs some more work:

  • Update the deprecation message to mention the cache var TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE and how to set it to remove deprecation warnings (or turn them into errors).
  • Add the non-cache var TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE_DEFAULT so that a TriBITS project can provide its own default for TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE.
  • Add documentation for the cache var TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE in the TriBITS build reference and developers guides.
  • Add a TriBITS script to replace a token with another token (which can be used for refactorings like changing include_directories to tribits_include_directories)
  • Add a CHANGELOG.md entry for deprecation warnings and show to deal with them.

@bartlettroscoe
Copy link
Member Author

The fact that this needs some work was highlighted I went to update TriBITS in Trilinos and it produced over 1,300 deprecation warnings as described in trilinos/Trilinos#11380 (comment).

bartlettroscoe added a commit to bartlettroscoe/TriBITS that referenced this issue Dec 14, 2022
* Update the deprecation message to mention the cache var
  TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE and how to set it to remove
  deprecation warnings.

* Add non-cache var TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE_DEFAULT so that a
  TriBITS project can provide its own default for cache var
  TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE.

* Add documentation for the cache var TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE
  in the TriBITS build reference and developers guides.

* Fix TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE_ALL_VALID_VALUES to pull in
  ${TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE_VALUES_THAT_CALL_MESSAGE} and
  ${TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE_VALUES_THAT_DONT_CALL_MESSAGE}
  instead of pulling in
  ${TRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE_VALUES_THAT_CALL_MESSAGE} twice.
  (If user would have tried to set
  -DTRIBITS_HANDLE_TRIBITS_DEPRECATED_CODE=IGNORE, it would have errored out
  of the configure.)

* ???
bartlettroscoe added a commit to bartlettroscoe/TriBITS that referenced this issue Dec 14, 2022
Will help in future refactorings.  I mostly just added this as a precursor to
token-replace.py.
bartlettroscoe added a commit to bartlettroscoe/TriBITS that referenced this issue Dec 14, 2022
I will use this tool to replace deprecated functions/macros.
bartlettroscoe added a commit to bartlettroscoe/TriBITS that referenced this issue Dec 14, 2022
bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Dec 20, 2022
…() (TriBITSPub/TriBITS#429)

A refactoring in TriBITS related to tribits_include_directories() (see
TriBITSPub/TriBITS#553) required renaming set_and_inc_dirs() to
tribits_set_and_inc_dirs() and deprecating the former.  The deprecated TriBITS
macro set_and_inc_dirs() now issues a CMake Deprecation warning.  This change
wsa made with the TriBITS script:

  TriBITS/refactoring/replace_set_and_inc_dirs_r.sh
bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Dec 20, 2022
…riBITSPub/TriBITS#429)

A refactoring in TriBITS related to tribits_include_directories() (see
TriBITSPub/TriBITS#553) required renaming set_and_inc_dirs() to
tribits_set_and_inc_dirs() and deprecating the former.  The deprecated TriBITS
macro set_and_inc_dirs() now issues a CMake Deprecation warning.  This change
wsa made with the TriBITS script:

  TriBITS/refactoring/replace_set_and_inc_dirs_r.sh
bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Dec 20, 2022
…riBITSPub/TriBITS#429)

A refactoring in TriBITS related to tribits_include_directories() (see
TriBITSPub/TriBITS#553) required renaming set_and_inc_dirs() to
tribits_set_and_inc_dirs() and deprecating the former.  The deprecated TriBITS
macro set_and_inc_dirs() now issues a CMake Deprecation warning.  This change
wsa made with the TriBITS script:

  TriBITS/refactoring/replace_set_and_inc_dirs_r.sh
bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Dec 20, 2022
…iBITSPub/TriBITS#429)

A refactoring in TriBITS related to tribits_include_directories() (see
TriBITSPub/TriBITS#553) required renaming set_and_inc_dirs() to
tribits_set_and_inc_dirs() and deprecating the former.  The deprecated TriBITS
macro set_and_inc_dirs() now issues a CMake Deprecation warning.  This change
wsa made with the TriBITS script:

  TriBITS/refactoring/replace_set_and_inc_dirs_r.sh
bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Dec 20, 2022
…riBITSPub/TriBITS#429)

A refactoring in TriBITS related to tribits_include_directories() (see
TriBITSPub/TriBITS#553) required renaming set_and_inc_dirs() to
tribits_set_and_inc_dirs() and deprecating the former.  The deprecated TriBITS
macro set_and_inc_dirs() now issues a CMake Deprecation warning.  This change
wsa made with the TriBITS script:

  TriBITS/refactoring/replace_set_and_inc_dirs_r.sh
bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Dec 20, 2022
…riBITSPub/TriBITS#429)

A refactoring in TriBITS related to tribits_include_directories() (see
TriBITSPub/TriBITS#553) required renaming set_and_inc_dirs() to
tribits_set_and_inc_dirs() and deprecating the former.  The deprecated TriBITS
macro set_and_inc_dirs() now issues a CMake Deprecation warning.  This change
wsa made with the TriBITS script:

  TriBITS/refactoring/replace_set_and_inc_dirs_r.sh
bartlettroscoe added a commit to bartlettroscoe/Trilinos that referenced this issue Dec 20, 2022
…riBITSPub/TriBITS#429)

A refactoring in TriBITS related to tribits_include_directories() (see
TriBITSPub/TriBITS#553) required renaming set_and_inc_dirs() to
tribits_set_and_inc_dirs() and deprecating the former.  The deprecated TriBITS
macro set_and_inc_dirs() now issues a CMake Deprecation warning.  This change
wsa made with the TriBITS script:

  TriBITS/refactoring/replace_set_and_inc_dirs_r.sh
bartlettroscoe added a commit to bartlettroscoe/kokkos-kernels that referenced this issue Dec 21, 2022
…iBITS#429)

This replaces the usage of raw include_directories() with the wrapper
KOKKOSKERNELS_INCLUDE_DIRECTORIES().

The deprecated TriBITS macro include_directories() now issues a CMake
Deprecation warning.  The fix is to use tribits_include_directories() in a
TriBITS build instead.

This is the same patch made in Trilinos PR trilinos/Trilinos#11380.
bartlettroscoe added a commit to bartlettroscoe/seacas that referenced this issue Dec 21, 2022
…TriBITS#429)

The deprecated TriBITS macro include_directories() now issues a CMake
Deprecation warning.  The fix is to use tribits_include_directories() instead
and use raw CMake include_directories() where that is the behavior you want.

This matches a similar commit from PR trilinos/Trilinos#11380

I was not able to use git format-patch and git am to apply the patch from the
Trilinos branch due to no current clean snapshot so I had to run the tool
TriBITS/refactoring/replace_include_directories_r.sh from scratch.
bartlettroscoe added a commit to bartlettroscoe/seacas that referenced this issue Dec 21, 2022
…riBITSPub/TriBITS#429)

A refactoring in TriBITS related to tribits_include_directories() (see
TriBITSPub/TriBITS#553) required renaming set_and_inc_dirs() to
tribits_set_and_inc_dirs() and deprecating the former.  The deprecated TriBITS
macro set_and_inc_dirs() now issues a CMake Deprecation warning.

This matches a similar commit from PR trilinos/Trilinos#11380

I was not able to use git format-patch and git am to apply the patch from the
Trilinos branch due to no current clean snapshot so I had to run the tool
TriBITS/refactoring/replace_set_and_inc_dirs_r.sh from scratch.
bartlettroscoe added a commit to bartlettroscoe/seacas that referenced this issue Dec 21, 2022
…#429)

The last snapshot of TriBITS 'master' into cmake/tribits/ wiped out a bunch of
local changes to these files.  Therefore, this commit put all of those back
again.
bartlettroscoe added a commit to bartlettroscoe/seacas that referenced this issue Dec 21, 2022
…TriBITS#429)

The deprecated TriBITS macro include_directories() now issues a CMake
Deprecation warning.  The fix is to use tribits_include_directories() instead
and use raw CMake include_directories() where that is the behavior you want.
bartlettroscoe added a commit to bartlettroscoe/seacas that referenced this issue Dec 21, 2022
…SPub/TriBITS#429)

Let's not generate any deprecated warnings from the deprecated TriBITS
include_directories() function.  Let's just not define it.
gsjaardema added a commit to sandialabs/seacas that referenced this issue Dec 22, 2022
…ated

SEACAS: Remove the usage of deprecated TriBITS macros and update TriBITS snapshot (TriBITSPub/TriBITS#429)
jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Dec 23, 2022
…s:develop' (2c1c93a).

* trilinos-develop: (77 commits)
  Nox: Silence some warnings
  Stratimikos: Silence warnings
  Belos: Silence warnings
  Automatic snapshot commit from tribits at c2f52215
  Zoltan2: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Xpetra: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Tpetra: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Thyra: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Teuchos: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Tempus: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Stratimikos: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  SEACAS: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Rythmos: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  RTOp: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  ROL: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Pike: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Percept: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  MueLu: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  ML: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  MiniTensor: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  ...
jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Dec 24, 2022
…s:develop' (2c1c93a).

* trilinos-develop: (78 commits)
  Revert "TriBITS Snapshot 2022-12-12 working toward TriBITSPub/TriBITS#63"
  Nox: Silence some warnings
  Stratimikos: Silence warnings
  Belos: Silence warnings
  Automatic snapshot commit from tribits at c2f52215
  Zoltan2: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Xpetra: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Tpetra: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Thyra: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Teuchos: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Tempus: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Stratimikos: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  SEACAS: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Rythmos: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  RTOp: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  ROL: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Pike: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Percept: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  MueLu: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  ML: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  ...
jmgate pushed a commit to tcad-charon/Trilinos that referenced this issue Dec 24, 2022
…s:develop' (2c1c93a).

* trilinos-develop: (78 commits)
  Revert "TriBITS Snapshot 2022-12-12 working toward TriBITSPub/TriBITS#63"
  Nox: Silence some warnings
  Stratimikos: Silence warnings
  Belos: Silence warnings
  Automatic snapshot commit from tribits at c2f52215
  Zoltan2: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Xpetra: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Tpetra: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Thyra: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Teuchos: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Tempus: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Stratimikos: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  SEACAS: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Rythmos: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  RTOp: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  ROL: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Pike: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  Percept: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  MueLu: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  ML: Replace set_and_inc_dirs() with tribits_set_and_inc_dirs() (TriBITSPub/TriBITS#429)
  ...
ndellingwood added a commit to kokkos/kokkos-kernels that referenced this issue Jan 27, 2023
KokkosKernels: Use KOKKOSKERNELS_INCLUDE_DIRECTORIES() (TriBITSPub/TriBITS#429)
bartlettroscoe added a commit that referenced this issue Feb 25, 2023
Using fr'....{var}...' makes for shorter and more readable string creation.

Now that TriBITS requires Python 3 (or at least it is only tested with Python
3), it is good to be able to start using these newer language features.

I tested this manaully locally and it seems to work correctly.
cabejackson pushed a commit to trilinos/Moertel that referenced this issue Aug 16, 2023
…/TriBITS#429)

The deprecated TriBITS macro include_directories() now issues a CMake
Deprecation warning.  The fix is to use tribits_include_directories() instead
and use raw CMake include_directories() where that is the behavior you want.
cabejackson pushed a commit to trilinos/FEI that referenced this issue Aug 16, 2023
…BITS#429)

The deprecated TriBITS macro include_directories() now issues a CMake
Deprecation warning.  The fix is to use tribits_include_directories() instead
and use raw CMake include_directories() where that is the behavior you want.
cabejackson pushed a commit to trilinos/Rythmos that referenced this issue Aug 16, 2023
…/TriBITS#429)

The deprecated TriBITS macro include_directories() now issues a CMake
Deprecation warning.  The fix is to use tribits_include_directories() instead
and use raw CMake include_directories() where that is the behavior you want.
cabejackson pushed a commit to trilinos/Rythmos that referenced this issue Aug 16, 2023
…riBITSPub/TriBITS#429)

A refactoring in TriBITS related to tribits_include_directories() (see
TriBITSPub/TriBITS#553) required renaming set_and_inc_dirs() to
tribits_set_and_inc_dirs() and deprecating the former.  The deprecated TriBITS
macro set_and_inc_dirs() now issues a CMake Deprecation warning.  This change
wsa made with the TriBITS script:

  TriBITS/refactoring/replace_set_and_inc_dirs_r.sh
cabejackson pushed a commit to trilinos/Komplex that referenced this issue Aug 16, 2023
…/TriBITS#429)

The deprecated TriBITS macro include_directories() now issues a CMake
Deprecation warning.  The fix is to use tribits_include_directories() instead
and use raw CMake include_directories() where that is the behavior you want.
cabejackson pushed a commit to trilinos/Pike that referenced this issue Aug 16, 2023
…iBITS#429)

The deprecated TriBITS macro include_directories() now issues a CMake
Deprecation warning.  The fix is to use tribits_include_directories() instead
and use raw CMake include_directories() where that is the behavior you want.
cabejackson pushed a commit to trilinos/Pike that referenced this issue Aug 16, 2023
…BITSPub/TriBITS#429)

A refactoring in TriBITS related to tribits_include_directories() (see
TriBITSPub/TriBITS#553) required renaming set_and_inc_dirs() to
tribits_set_and_inc_dirs() and deprecating the former.  The deprecated TriBITS
macro set_and_inc_dirs() now issues a CMake Deprecation warning.  This change
wsa made with the TriBITS script:

  TriBITS/refactoring/replace_set_and_inc_dirs_r.sh
@bartlettroscoe
Copy link
Member Author

This has been implemented for a long time. No sense keeping it open anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

No branches or pull requests

3 participants