Skip to content

Commit

Permalink
Remove dir-specific vars to allow include of TribitsPackageMacros at …
Browse files Browse the repository at this point in the history
…top level.

This refactoring is to allow TriBITS packages to not have to include
TribitsPackageMacros but just use the commands.  Changes I made:

* Moved CMake .exe out of global and added
  ${PROJECT_NAME}_CMAKE_EXECUTABLE_SUFFIX to allow TriBITS projects to change
  the prefix *.exe to something else.  This had to be done or it messed up a
  some try-compile commands in Teuchos (and likely other packages).

* Moved commands that set include and lib dirs to inside of
  TRIBITS_ADD_EXECUTABLE().  This might slow down the configure when you have
  a lot of TRIBTS_ADD_EXECUTABLE() commands in a single CMkaeLists.txt file
  but we will just have to see.
  • Loading branch information
Roscoe A. Bartlett committed Feb 21, 2014
1 parent 9c177c9 commit d91f059
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 17 deletions.
34 changes: 22 additions & 12 deletions package_arch/TribitsAddExecutable.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,13 @@ FUNCTION(TRIBITS_ADD_EXECUTABLE EXE_NAME)
#
# C) Add the executable
#

IF (NOT PACKAGE_ADD_EXECUTABLE_UNIT_TESTING)
INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING
${${PACKAGE_NAME}_INCLUDE_DIRS})
SET_PROPERTY(DIRECTORY APPEND PROPERTY PACKAGE_LIBRARY_DIRS
${${PACKAGE_NAME}_LIBRARY_DIRS})
ENDIF()

SET (EXE_SOURCES)
SET(EXE_BINARY_NAME ${EXE_NAME})
Expand Down Expand Up @@ -173,6 +180,9 @@ FUNCTION(TRIBITS_ADD_EXECUTABLE EXE_NAME)

IF(PARSE_NOEXESUFFIX AND NOT WIN32)
SET_TARGET_PROPERTIES(${EXE_BINARY_NAME} PROPERTIES SUFFIX "")
ELSE()
SET_TARGET_PROPERTIES(${EXE_BINARY_NAME} PROPERTIES SUFFIX
${${PROJECT_NAME}_CMAKE_EXECUTABLE_SUFFIX})
ENDIF()

IF(PARSE_LINKER_LANGUAGE)
Expand Down Expand Up @@ -276,15 +286,15 @@ ENDFUNCTION()
# Setup include directories and library dependencies
#

IF (${PROJECT_NAME}_VERBOSE_CONFIGURE)
MESSAGE("TribitsAddExecutable.cmake")
PRINT_VAR(${PACKAGE_NAME}_INCLUDE_DIRS)
PRINT_VAR(${PACKAGE_NAME}_LIBRARY_DIRS)
ENDIF()

IF (NOT PACKAGE_ADD_EXECUTABLE_UNIT_TESTING)
INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING
${${PACKAGE_NAME}_INCLUDE_DIRS})
SET_PROPERTY(DIRECTORY APPEND PROPERTY PACKAGE_LIBRARY_DIRS
${${PACKAGE_NAME}_LIBRARY_DIRS})
ENDIF()
#IF (${PROJECT_NAME}_VERBOSE_CONFIGURE)
# MESSAGE("TribitsAddExecutable.cmake")
# PRINT_VAR(${PACKAGE_NAME}_INCLUDE_DIRS)
# PRINT_VAR(${PACKAGE_NAME}_LIBRARY_DIRS)
#ENDIF()
#
#IF (NOT PACKAGE_ADD_EXECUTABLE_UNIT_TESTING)
# INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING
# ${${PACKAGE_NAME}_INCLUDE_DIRS})
# SET_PROPERTY(DIRECTORY APPEND PROPERTY PACKAGE_LIBRARY_DIRS
# ${${PACKAGE_NAME}_LIBRARY_DIRS})
#ENDIF()
5 changes: 5 additions & 0 deletions package_arch/TribitsAddExecutableAndTest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,11 @@ INCLUDE(TribitsAddExecutable)
INCLUDE(TribitsAddTest)


#
# Helper Macros
#


MACRO(TRIBITS_FWD_PARSE_ARG VAR_TO_SET_OUT ARGNAME)
IF (PARSE_${ARGNAME})
SET(${VAR_TO_SET_OUT} ${${VAR_TO_SET_OUT}} ${ARGNAME} ${PARSE_${ARGNAME}})
Expand Down
7 changes: 4 additions & 3 deletions package_arch/TribitsAddExecutableTestHelpers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,11 @@
# ************************************************************************
# @HEADER

INCLUDE(AdvancedSet)


SET(CMAKE_EXECUTABLE_SUFFIX ".exe")

ADVANCED_SET( ${PROJECT_NAME}_CMAKE_EXECUTABLE_SUFFIX ".exe"
CACHE STRING
"Default exec suffix on all platforms (can be overridden by each executable added)." )

#
# Process the COMM arguments
Expand Down
7 changes: 5 additions & 2 deletions package_arch/TribitsAddTestHelpers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -225,9 +225,12 @@ FUNCTION(TRIBITS_ADD_TEST_GET_EXE_BINARY_NAME EXE_NAME_IN
TRIBITS_CREATE_NAME_FROM_CURRENT_SOURCE_DIRECTORY(DIRECTORY_NAME)
SET(EXE_BINARY_NAME "${DIRECTORY_NAME}_${EXE_BINARY_NAME}")
ENDIF()
IF (NOT NOEXESUFFIX_IN)
SET(EXE_BINARY_NAME "${EXE_BINARY_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
IF (NOEXESUFFIX_IN)
SET(EXECUTABLE_SUFFIX "")
ELSE()
SET(EXECUTABLE_SUFFIX ${${PROJECT_NAME}_CMAKE_EXECUTABLE_SUFFIX})
ENDIF()
SET(EXE_BINARY_NAME "${EXE_BINARY_NAME}${EXECUTABLE_SUFFIX}")
IF(PACKAGE_NAME AND NOT NOEXEPREFIX_IN)
SET(EXE_BINARY_NAME ${PACKAGE_NAME}_${EXE_BINARY_NAME})
ENDIF()
Expand Down

0 comments on commit d91f059

Please sign in to comment.