Revision: 77547
http://sourceforge.net/p/brlcad/code/77547
Author: starseeker
Date: 2020-10-22 17:02:28 +0000 (Thu, 22 Oct 2020)
Log Message:
-----------
Update Find modules to respect _ROOT variables, add dependencies on _stage
targets where appropriate. This paves the way for allowing find_package to
target the specific BRL-CAD directory that holds the installed outputs of the
third party external builds. The ability of find_package to respond first to a
_ROOT variable is one of the drivers for requiring newer CMake.
Modified Paths:
--------------
brlcad/branches/extbuild/misc/CMake/FindLEMON.cmake
brlcad/branches/extbuild/misc/CMake/FindNETPBM.cmake
brlcad/branches/extbuild/misc/CMake/FindOPENNURBS.cmake
brlcad/branches/extbuild/misc/CMake/FindPERPLEX.cmake
brlcad/branches/extbuild/misc/CMake/FindPROJ4.cmake
brlcad/branches/extbuild/misc/CMake/FindRE2C.cmake
brlcad/branches/extbuild/misc/CMake/FindREGEX.cmake
brlcad/branches/extbuild/misc/CMake/FindTCL.cmake
brlcad/branches/extbuild/misc/CMake/FindUTAHRLE.cmake
brlcad/branches/extbuild/misc/tools/dom2dox/CMake/FindLEMON.cmake
brlcad/branches/extbuild/misc/tools/dom2dox/CMake/FindPERPLEX.cmake
brlcad/branches/extbuild/src/libgcv/plugins/obj/wfobj/CMake/FindLEMON.cmake
brlcad/branches/extbuild/src/libgcv/plugins/obj/wfobj/CMake/FindPERPLEX.cmake
Added Paths:
-----------
brlcad/branches/extbuild/misc/CMake/FindPOLY2TRI.cmake
brlcad/branches/extbuild/misc/CMake/FindSTEPCODE.cmake
Removed Paths:
-------------
brlcad/branches/extbuild/misc/CMake/FindSSE.cmake
Modified: brlcad/branches/extbuild/misc/CMake/FindLEMON.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindLEMON.cmake 2020-10-22 15:59:28 UTC
(rev 77546)
+++ brlcad/branches/extbuild/misc/CMake/FindLEMON.cmake 2020-10-22 17:02:28 UTC
(rev 77547)
@@ -44,9 +44,35 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
-find_program(LEMON_EXECUTABLE lemon DOC "path to the lemon executable")
+set(_LEMON_SEARCHES)
+
+# Search LEMON_ROOT first if it is set.
+if(LEMON_ROOT)
+ set(_LEMON_SEARCH_ROOT PATHS ${LEMON_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _LEMON_SEARCHES _LEMON_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_LEMON_x86 "(x86)")
+set(_LEMON_SEARCH_NORMAL
+ PATHS "$ENV{ProgramFiles}/lemon"
+ "$ENV{ProgramFiles${_LEMON_x86}}/lemon")
+unset(_LEMON_x86)
+list(APPEND _LEMON_SEARCHES _LEMON_SEARCH_NORMAL)
+
+set(LEMON_NAMES lemon)
+
+# Try each search configuration.
+foreach(search ${_LEMON_SEARCHES})
+ find_program(LEMON_EXECUTABLE lemon ${${search}} PATH_SUFFIXES bin)
+endforeach()
mark_as_advanced(LEMON_EXECUTABLE)
+foreach(search ${_LEMON_SEARCHES})
+ find_file(LEMON_TEMPLATE lempar.c ${${search}} PATH_SUFFIXES ${DATA_DIR}
${DATA_DIR}/lemon)
+endforeach()
+mark_as_advanced(LEMON_TEMPLATE)
+
if (LEMON_EXECUTABLE AND NOT LEMON_TEMPLATE)
# look for the template in share
if (DATA_DIR AND EXISTS "${DATA_DIR}/lemon/lempar.c")
@@ -113,6 +139,10 @@
CMAKE_PARSE_ARGUMENTS(${LVAR_PREFIX} ""
"OUT_SRC_FILE;OUT_HDR_FILE;WORKING_DIR;EXTRA_ARGS" "" ${ARGN})
endif(${ARGC} GREATER 3)
+ if (TARGET perplex_stage)
+ set(DEPS_TARGET perplex_stage)
+ endif (TARGET perplex_stage)
+
# Need a working directory
if("${${LVAR_PREFIX}_WORKING_DIR}" STREQUAL "")
set(${LVAR_PREFIX}_WORKING_DIR
"${CMAKE_CURRENT_BINARY_DIR}/${LVAR_PREFIX}")
@@ -160,8 +190,8 @@
add_custom_command(
OUTPUT ${LEMON_GEN_OUT} ${LEMON_GEN_SOURCE} ${LEMON_GEN_HEADER}
COMMAND ${CMAKE_COMMAND} -E copy ${lemon_in_file}
${${LVAR_PREFIX}_WORKING_DIR}/${INPUT_NAME}
- COMMAND ${LEMON_EXECUTABLE} -l -T${LEMON_TEMPLATE}
${${LVAR_PREFIX}_WORKING_DIR}/${INPUT_NAME} ${${LVAR_PREFIX}__EXTRA_ARGS}
- DEPENDS ${Input} ${LEMON_TEMPLATE} ${LEMON_EXECUTABLE_TARGET}
+ COMMAND ${LEMON_EXECUTABLE} -T${LEMON_TEMPLATE}
${${LVAR_PREFIX}_WORKING_DIR}/${INPUT_NAME} ${${LVAR_PREFIX}__EXTRA_ARGS}
+ DEPENDS ${Input} ${LEMON_EXECUTABLE_TARGET} ${DEPS_TARGET}
WORKING_DIRECTORY ${${LVAR_PREFIX}_WORKING_DIR}
COMMENT "[LEMON][${Name}] Building parser with ${LEMON_EXECUTABLE}"
)
@@ -171,7 +201,7 @@
add_custom_command(
OUTPUT ${${LVAR_PREFIX}_OUT_SRC_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${LEMON_GEN_SOURCE}
${${LVAR_PREFIX}_OUT_SRC_FILE}
- DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_SOURCE}
+ DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_SOURCE}
${DEPS_TARGET}
)
set(LEMON_${Name}_OUTPUTS ${${LVAR_PREFIX}_OUT_SRC_FILE}
${LEMON_${Name}_OUTPUTS})
endif(NOT "${${LVAR_PREFIX}_OUT_SRC_FILE}" STREQUAL "${LEMON_GEN_SOURCE}")
@@ -179,7 +209,7 @@
add_custom_command(
OUTPUT ${${LVAR_PREFIX}_OUT_HDR_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${LEMON_GEN_HEADER}
${${LVAR_PREFIX}_OUT_HDR_FILE}
- DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_HEADER}
+ DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_HEADER}
${DEPS_TARGET}
)
set(LEMON_${Name}_OUTPUTS ${${LVAR_PREFIX}_OUT_HDR_FILE}
${LEMON_${Name}_OUTPUTS})
endif(NOT "${${LVAR_PREFIX}_OUT_HDR_FILE}" STREQUAL "${LEMON_GEN_HEADER}")
Modified: brlcad/branches/extbuild/misc/CMake/FindNETPBM.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindNETPBM.cmake 2020-10-22
15:59:28 UTC (rev 77546)
+++ brlcad/branches/extbuild/misc/CMake/FindNETPBM.cmake 2020-10-22
17:02:28 UTC (rev 77547)
@@ -1,59 +1,102 @@
-# F I N D N E T P B M . C M A K E
-# BRL-CAD
-#
-# Copyright (c) 2011-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-# - Find netpbm library and headers
-#
-# The following variables are set:
-#
-# NETPBM_LIBRARIES - libnetpbm
-# NETPBM_INCLUDE_DIRS - where to find ppm.h, pam.h, pbm.h, etc.
-# NETPBM_FOUND - True if libnetpbm and header found.
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
-find_path(NETPBM_INCLUDE_DIR pam.h)
-find_library(NETPBM_LIBRARY NAMES netpbm)
+#[=======================================================================[.rst:
+FindNETPBM
+--------
+Find the native NETPBM includes and library.
+
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
+
+This module defines :prop_tgt:`IMPORTED` target ``NETPBM::NETPBM``, if
+NETPBM has been found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+::
+
+ NETPBM_INCLUDE_DIRS - where to find pam.h, etc.
+ NETPBM_LIBRARIES - List of libraries when using netpbm.
+ NETPBM_FOUND - True if netpbm found.
+
+Hints
+^^^^^
+
+A user may set ``NETPBM_ROOT`` to a netpbm installation root to tell this
+module where to look.
+#]=======================================================================]
+
+set(_NETPBM_SEARCHES)
+
+# Search NETPBM_ROOT first if it is set.
+if(NETPBM_ROOT)
+ set(_NETPBM_SEARCH_ROOT PATHS ${NETPBM_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _NETPBM_SEARCHES _NETPBM_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_NETPBM_x86 "(x86)")
+set(_NETPBM_SEARCH_NORMAL
+ PATHS "$ENV{ProgramFiles}/netpbm"
+ "$ENV{ProgramFiles${_NETPBM_x86}}/netpbm")
+unset(_NETPBM_x86)
+list(APPEND _NETPBM_SEARCHES _NETPBM_SEARCH_NORMAL)
+
+set(NETPBM_NAMES netpbm)
+
+# Try each search configuration.
+foreach(search ${_NETPBM_SEARCHES})
+ find_path(NETPBM_INCLUDE_DIR NAMES pam.h ${${search}} PATH_SUFFIXES include
include/netpbm netpbm)
+endforeach()
+
+# Allow NETPBM_LIBRARY to be set manually, as the location of the netpbm
library
+if(NOT NETPBM_LIBRARY)
+ foreach(search ${_NETPBM_SEARCHES})
+ find_library(NETPBM_LIBRARY NAMES ${NETPBM_NAMES} NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
+ endforeach()
+endif()
+
+unset(NETPBM_NAMES)
+
+mark_as_advanced(NETPBM_INCLUDE_DIR)
+
include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(NETPBM DEFAULT_MSG NETPBM_LIBRARY
NETPBM_INCLUDE_DIR)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(NETPBM REQUIRED_VARS NETPBM_LIBRARY
NETPBM_INCLUDE_DIR)
-IF (NETPBM_FOUND)
- set(NETPBM_INCLUDE_DIRS ${NETPBM_INCLUDE_DIR})
- set(NETPBM_LIBRARIES ${NETPBM_LIBRARY})
+if(NETPBM_FOUND)
+ set(NETPBM_INCLUDE_DIRS ${NETPBM_INCLUDE_DIR})
+
+ if(NOT NETPBM_LIBRARIES)
+ set(NETPBM_LIBRARIES ${NETPBM_LIBRARY})
+ endif()
+
+ if(NOT TARGET NETPBM::NETPBM)
+ add_library(NETPBM::NETPBM UNKNOWN IMPORTED)
+ set_target_properties(NETPBM::NETPBM PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${NETPBM_INCLUDE_DIRS}")
+
+ if(NETPBM_LIBRARY_RELEASE)
+ set_property(TARGET NETPBM::NETPBM APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(NETPBM::NETPBM PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${NETPBM_LIBRARY_RELEASE}")
+ endif()
+
+ if(NETPBM_LIBRARY_DEBUG)
+ set_property(TARGET NETPBM::NETPBM APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(NETPBM::NETPBM PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${NETPBM_LIBRARY_DEBUG}")
+ endif()
+
+ if(NOT NETPBM_LIBRARY_RELEASE AND NOT NETPBM_LIBRARY_DEBUG)
+ set_property(TARGET NETPBM::NETPBM APPEND PROPERTY
+ IMPORTED_LOCATION "${NETPBM_LIBRARY}")
+ endif()
+ endif()
endif()
-# Local Variables:
-# tab-width: 8
-# mode: cmake
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=2 tabstop=8
Modified: brlcad/branches/extbuild/misc/CMake/FindOPENNURBS.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindOPENNURBS.cmake 2020-10-22
15:59:28 UTC (rev 77546)
+++ brlcad/branches/extbuild/misc/CMake/FindOPENNURBS.cmake 2020-10-22
17:02:28 UTC (rev 77547)
@@ -1,63 +1,102 @@
-# F I N D O P E N N U R B S . C M A K E
-# BRL-CAD
-#
-# Copyright (c) 2011-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-# - Find OpenNURBS
-#
-# The following variables are set:
-#
-# OPENNURBS_INCLUDE_DIRS - where to find opennurbs.h, etc.
-# OPENNURBS_LIBRARIES - List of libraries when using openNURBS
-# OPENNURBS_FOUND - True if openNURBS found.
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
-# OpenNURBS requires zlib
-find_package(ZLIB)
+#[=======================================================================[.rst:
+FindOPENNURBS
+--------
-find_path(OPENNURBS_INCLUDE_DIR opennurbs.h)
-find_library(OPENNURBS_LIBRARY NAMES opennurbs openNURBS OpenNURBS)
+Find the native OPENNURBS includes and library.
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
+
+This module defines :prop_tgt:`IMPORTED` target ``OPENNURBS::OPENNURBS``, if
+OPENNURBS has been found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+::
+
+ OPENNURBS_INCLUDE_DIRS - where to find opennurbs.h, etc.
+ OPENNURBS_LIBRARIES - List of libraries when using openNURBS.
+ OPENNURBS_FOUND - True if openNURBS found.
+
+Hints
+^^^^^
+
+A user may set ``OPENNURBS_ROOT`` to a openNURBS installation root to tell this
+module where to look.
+#]=======================================================================]
+
+set(_OPENNURBS_SEARCHES)
+
+# Search OPENNURBS_ROOT first if it is set.
+if(OPENNURBS_ROOT)
+ set(_OPENNURBS_SEARCH_ROOT PATHS ${OPENNURBS_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _OPENNURBS_SEARCHES _OPENNURBS_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_OPENNURBS_x86 "(x86)")
+set(_OPENNURBS_SEARCH_NORMAL
+ PATHS "$ENV{ProgramFiles}/openNURBS"
+ "$ENV{ProgramFiles${_OPENNURBS_x86}}/openNURBS")
+unset(_OPENNURBS_x86)
+list(APPEND _OPENNURBS_SEARCHES _OPENNURBS_SEARCH_NORMAL)
+
+set(OPENNURBS_NAMES openNURBS)
+
+# Try each search configuration.
+foreach(search ${_OPENNURBS_SEARCHES})
+ find_path(OPENNURBS_INCLUDE_DIR NAMES opennurbs.h ${${search}} PATH_SUFFIXES
include include/openNURBS openNURBS)
+endforeach()
+
+# Allow OPENNURBS_LIBRARY to be set manually, as the location of the openNURBS
library
+if(NOT OPENNURBS_LIBRARY)
+ foreach(search ${_OPENNURBS_SEARCHES})
+ find_library(OPENNURBS_LIBRARY NAMES ${OPENNURBS_NAMES} NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
+ endforeach()
+endif()
+
+unset(OPENNURBS_NAMES)
+
+mark_as_advanced(OPENNURBS_INCLUDE_DIR)
+
include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENNURBS DEFAULT_MSG OPENNURBS_LIBRARY
OPENNURBS_INCLUDE_DIR)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENNURBS REQUIRED_VARS OPENNURBS_LIBRARY
OPENNURBS_INCLUDE_DIR)
if(OPENNURBS_FOUND)
- set(OPENNURBS_INCLUDE_DIRS ${OPENNURBS_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
- list(REMOVE_DUPLICATES OPENNURBS_INCLUDE_DIR)
- set(OPENNURBS_LIBRARIES ${OPENNURBS_LIBRARY} ${ZLIB_LIBRARY})
+ set(OPENNURBS_INCLUDE_DIRS ${OPENNURBS_INCLUDE_DIR})
+
+ if(NOT OPENNURBS_LIBRARIES)
+ set(OPENNURBS_LIBRARIES ${OPENNURBS_LIBRARY})
+ endif()
+
+ if(NOT TARGET OPENNURBS::OPENNURBS)
+ add_library(OPENNURBS::OPENNURBS UNKNOWN IMPORTED)
+ set_target_properties(OPENNURBS::OPENNURBS PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${OPENNURBS_INCLUDE_DIRS}")
+
+ if(OPENNURBS_LIBRARY_RELEASE)
+ set_property(TARGET OPENNURBS::OPENNURBS APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(OPENNURBS::OPENNURBS PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${OPENNURBS_LIBRARY_RELEASE}")
+ endif()
+
+ if(OPENNURBS_LIBRARY_DEBUG)
+ set_property(TARGET OPENNURBS::OPENNURBS APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(OPENNURBS::OPENNURBS PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${OPENNURBS_LIBRARY_DEBUG}")
+ endif()
+
+ if(NOT OPENNURBS_LIBRARY_RELEASE AND NOT OPENNURBS_LIBRARY_DEBUG)
+ set_property(TARGET OPENNURBS::OPENNURBS APPEND PROPERTY
+ IMPORTED_LOCATION "${OPENNURBS_LIBRARY}")
+ endif()
+ endif()
endif()
-# Local Variables:
-# tab-width: 8
-# mode: cmake
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=2 tabstop=8
Modified: brlcad/branches/extbuild/misc/CMake/FindPERPLEX.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindPERPLEX.cmake 2020-10-22
15:59:28 UTC (rev 77546)
+++ brlcad/branches/extbuild/misc/CMake/FindPERPLEX.cmake 2020-10-22
17:02:28 UTC (rev 77547)
@@ -44,9 +44,35 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
-find_program(PERPLEX_EXECUTABLE perplex DOC "path to the perplex executable")
+set(_PERPLEX_SEARCHES)
+
+# Search PERPLEX_ROOT first if it is set.
+if(PERPLEX_ROOT)
+ set(_PERPLEX_SEARCH_ROOT PATHS ${PERPLEX_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _PERPLEX_SEARCHES _PERPLEX_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_PERPLEX_x86 "(x86)")
+set(_PERPLEX_SEARCH_NORMAL
+ PATHS "$ENV{ProgramFiles}/perplex"
+ "$ENV{ProgramFiles${_PERPLEX_x86}}/perplex")
+unset(_PERPLEX_x86)
+list(APPEND _PERPLEX_SEARCHES _PERPLEX_SEARCH_NORMAL)
+
+set(PERPLEX_NAMES perplex)
+
+# Try each search configuration.
+foreach(search ${_PERPLEX_SEARCHES})
+ find_program(PERPLEX_EXECUTABLE perplex ${${search}} PATH_SUFFIXES bin)
+endforeach()
mark_as_advanced(PERPLEX_EXECUTABLE)
+foreach(search ${_PERPLEX_SEARCHES})
+ find_file(PERPLEX_TEMPLATE perplex_template.c ${${search}} PATH_SUFFIXES
${DATA_DIR} ${DATA_DIR}/perplex)
+endforeach()
+mark_as_advanced(PERPLEX_TEMPLATE)
+
if(PERPLEX_EXECUTABLE AND NOT PERPLEX_TEMPLATE)
get_filename_component(perplex_path ${PERPLEX_EXECUTABLE} PATH)
if(perplex_path)
@@ -141,6 +167,10 @@
get_filename_component(IN_FILE_WE ${Input} NAME_WE)
set(PVAR_PREFIX ${Name}_${IN_FILE_WE})
+ if (TARGET perplex_stage)
+ set(DEP_TARGET perplex_stage)
+ endif (TARGET perplex_stage)
+
if(${ARGC} GREATER 3)
CMAKE_PARSE_ARGUMENTS(${PVAR_PREFIX} ""
"TEMPLATE;OUT_SRC_FILE;OUT_HDR_FILE;WORKING_DIR" "" ${ARGN})
endif(${ARGC} GREATER 3)
@@ -200,7 +230,7 @@
OUTPUT ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${perplex_in_file}
${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
COMMAND ${PERPLEX_EXECUTABLE} -c -o ${re2c_src} -i
${${PVAR_PREFIX}_OUT_HDR_FILE} -t ${${PVAR_PREFIX}_TEMPLATE}
${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
- DEPENDS ${Input} ${${PVAR_PREFIX}_TEMPLATE} ${PERPLEX_EXECUTABLE_TARGET}
${RE2C_EXECUTABLE_TARGET}
+ DEPENDS ${Input} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
${DEP_TARGET}
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
COMMENT "[PERPLEX][${Name}] Generating re2c input with
${PERPLEX_EXECUTABLE}"
)
@@ -209,7 +239,7 @@
add_custom_command(
OUTPUT ${${PVAR_PREFIX}_OUT_SRC_FILE}
COMMAND ${RE2C_EXECUTABLE} --no-debug-info --no-generation-date -c -o
${${PVAR_PREFIX}_OUT_SRC_FILE} ${re2c_src}
- DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
+ DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET} ${DEP_TARGET}
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
)
@@ -217,7 +247,7 @@
add_custom_command(
OUTPUT ${${PVAR_PREFIX}_OUT_SRC_FILE}
COMMAND ${RE2C_EXECUTABLE} --no-generation-date -c -o
${${PVAR_PREFIX}_OUT_SRC_FILE} ${re2c_src}
- DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
+ DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET} ${DEP_TARGET}
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
)
Added: brlcad/branches/extbuild/misc/CMake/FindPOLY2TRI.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindPOLY2TRI.cmake
(rev 0)
+++ brlcad/branches/extbuild/misc/CMake/FindPOLY2TRI.cmake 2020-10-22
17:02:28 UTC (rev 77547)
@@ -0,0 +1,102 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindPOLY2TRI
+--------
+
+Find the native POLY2TRI includes and library.
+
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
+
+This module defines :prop_tgt:`IMPORTED` target ``POLY2TRI::POLY2TRI``, if
+POLY2TRI has been found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+::
+
+ POLY2TRI_INCLUDE_DIRS - where to find poly2tri/poly2tri.h, etc.
+ POLY2TRI_LIBRARIES - List of libraries when using poly2tri.
+ POLY2TRI_FOUND - True if poly2tri found.
+
+Hints
+^^^^^
+
+A user may set ``POLY2TRI_ROOT`` to a poly2tri installation root to tell this
+module where to look.
+#]=======================================================================]
+
+set(_POLY2TRI_SEARCHES)
+
+# Search POLY2TRI_ROOT first if it is set.
+if(POLY2TRI_ROOT)
+ set(_POLY2TRI_SEARCH_ROOT PATHS ${POLY2TRI_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _POLY2TRI_SEARCHES _POLY2TRI_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_POLY2TRI_x86 "(x86)")
+set(_POLY2TRI_SEARCH_NORMAL
+ PATHS "$ENV{ProgramFiles}/poly2tri"
+ "$ENV{ProgramFiles${_POLY2TRI_x86}}/poly2tri")
+unset(_POLY2TRI_x86)
+list(APPEND _POLY2TRI_SEARCHES _POLY2TRI_SEARCH_NORMAL)
+
+set(POLY2TRI_NAMES poly2tri)
+
+# Try each search configuration.
+foreach(search ${_POLY2TRI_SEARCHES})
+ find_path(POLY2TRI_INCLUDE_DIR NAMES poly2tri/poly2tri.h ${${search}}
PATH_SUFFIXES include include/poly2tri poly2tri)
+endforeach()
+
+# Allow POLY2TRI_LIBRARY to be set manually, as the location of the poly2tri
library
+if(NOT POLY2TRI_LIBRARY)
+ foreach(search ${_POLY2TRI_SEARCHES})
+ find_library(POLY2TRI_LIBRARY NAMES ${POLY2TRI_NAMES} NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
+ endforeach()
+endif()
+
+unset(POLY2TRI_NAMES)
+
+mark_as_advanced(POLY2TRI_INCLUDE_DIR)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(POLY2TRI REQUIRED_VARS POLY2TRI_LIBRARY
POLY2TRI_INCLUDE_DIR)
+
+if(POLY2TRI_FOUND)
+ set(POLY2TRI_INCLUDE_DIRS ${POLY2TRI_INCLUDE_DIR})
+
+ if(NOT POLY2TRI_LIBRARIES)
+ set(POLY2TRI_LIBRARIES ${POLY2TRI_LIBRARY})
+ endif()
+
+ if(NOT TARGET POLY2TRI::POLY2TRI)
+ add_library(POLY2TRI::POLY2TRI UNKNOWN IMPORTED)
+ set_target_properties(POLY2TRI::POLY2TRI PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${POLY2TRI_INCLUDE_DIRS}")
+
+ if(POLY2TRI_LIBRARY_RELEASE)
+ set_property(TARGET POLY2TRI::POLY2TRI APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(POLY2TRI::POLY2TRI PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${POLY2TRI_LIBRARY_RELEASE}")
+ endif()
+
+ if(POLY2TRI_LIBRARY_DEBUG)
+ set_property(TARGET POLY2TRI::POLY2TRI APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(POLY2TRI::POLY2TRI PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${POLY2TRI_LIBRARY_DEBUG}")
+ endif()
+
+ if(NOT POLY2TRI_LIBRARY_RELEASE AND NOT POLY2TRI_LIBRARY_DEBUG)
+ set_property(TARGET POLY2TRI::POLY2TRI APPEND PROPERTY
+ IMPORTED_LOCATION "${POLY2TRI_LIBRARY}")
+ endif()
+ endif()
+endif()
Property changes on: brlcad/branches/extbuild/misc/CMake/FindPOLY2TRI.cmake
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Modified: brlcad/branches/extbuild/misc/CMake/FindPROJ4.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindPROJ4.cmake 2020-10-22 15:59:28 UTC
(rev 77546)
+++ brlcad/branches/extbuild/misc/CMake/FindPROJ4.cmake 2020-10-22 17:02:28 UTC
(rev 77547)
@@ -11,46 +11,36 @@
#
# Copyright (c) 2009 Mateusz Loskot <[email protected]>
#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
-# 1. Redistributions of source code must retain the copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# 3. The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
###############################################################################
-if (NOT PROJ4_FOUND)
+set(_PROJ4_SEARCHES)
-# Try to use OSGeo4W installation
-if(WIN32)
- set(PROJ4_OSGEO4W_HOME "C:/OSGeo4W")
-
- if($ENV{OSGEO4W_HOME})
- set(PROJ4_OSGEO4W_HOME "$ENV{OSGEO4W_HOME}")
- endif()
+# Search PROJ4_ROOT first if it is set.
+if(PROJ4_ROOT)
+ set(_PROJ4_SEARCH_ROOT PATHS ${PROJ4_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _PROJ4_SEARCHES _PROJ4_SEARCH_ROOT)
endif()
-find_path(PROJ4_INCLUDE_DIR proj_api.h
- PATHS ${PROJ4_ROOT}/include/proj ${PROJ4_OSGEO4W_HOME}/include
- DOC "Path to PROJ.4 library include directory")
+# Normal search.
+set(_PROJ4_x86 "(x86)")
+set(_PROJ4_SEARCH_NORMAL
+ PATHS
+ "$ENV{OSGEO4W_HOME}"
+ "C:/OSGeo4W"
+ "$ENV{ProgramFiles}/proj4"
+ "$ENV{ProgramFiles${_PROJ4_x86}}/proj4"
+ )
+ unset(_PROJ4_x86)
+list(APPEND _PROJ4_SEARCHES _PROJ4_SEARCH_NORMAL)
+# Try each search configuration.
+foreach(search ${_PROJ4_SEARCHES})
+ find_path(PROJ4_INCLUDE_DIR NAMES proj_api.h ${${search}} PATH_SUFFIXES
include include/proj4 proj4 include/proj proj)
+endforeach()
+
if (PROJ4_INCLUDE_DIR)
# Extract version from proj_api.h (ex: 480)
file(STRINGS ${PROJ4_INCLUDE_DIR}/proj_api.h
@@ -63,10 +53,12 @@
endif()
set(PROJ4_NAMES ${PROJ4_NAMES} proj proj_i)
-find_library(PROJ4_LIBRARY
- NAMES ${PROJ4_NAMES}
- PATHS ${PROJ4_ROOT}/lib64 ${PROJ4_ROOT}/lib ${PROJ4_OSGEO4W_HOME}/lib
- DOC "Path to PROJ.4 library file")
+if(NOT PROJ4_LIBRARY)
+ foreach(search ${_PROJ4_SEARCHES})
+ find_library(PROJ4_LIBRARY NAMES ${PROJ4_NAMES} NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
+ endforeach()
+endif()
+unset(PROJ4_NAMES)
if(PROJ4_LIBRARY)
set(PROJ4_LIBRARIES ${PROJ4_LIBRARY})
@@ -78,5 +70,3 @@
find_package_handle_standard_args(PROJ4 DEFAULT_MSG
PROJ4_LIBRARY
PROJ4_INCLUDE_DIR)
-
-endif (NOT PROJ4_FOUND)
Modified: brlcad/branches/extbuild/misc/CMake/FindRE2C.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindRE2C.cmake 2020-10-22 15:59:28 UTC
(rev 77546)
+++ brlcad/branches/extbuild/misc/CMake/FindRE2C.cmake 2020-10-22 17:02:28 UTC
(rev 77547)
@@ -3,7 +3,29 @@
#
#=============================================================================
-find_program(RE2C_EXECUTABLE re2c DOC "path to the re2c executable")
+set(_RE2C_SEARCHES)
+
+# Search RE2C_ROOT first if it is set.
+if(RE2C_ROOT)
+ set(_RE2C_SEARCH_ROOT PATHS ${RE2C_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _RE2C_SEARCHES _RE2C_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_RE2C_x86 "(x86)")
+set(_RE2C_SEARCH_NORMAL
+ PATHS "$ENV{ProgramFiles}/re2c"
+ "$ENV{ProgramFiles${_RE2C_x86}}/re2c")
+unset(_RE2C_x86)
+list(APPEND _RE2C_SEARCHES _RE2C_SEARCH_NORMAL)
+
+set(RE2C_NAMES re2c)
+
+# Try each search configuration.
+foreach(search ${_RE2C_SEARCHES})
+ find_program(RE2C_EXECUTABLE re2c ${${search}} PATH_SUFFIXES bin)
+endforeach()
+
mark_as_advanced(RE2C_EXECUTABLE)
include(FindPackageHandleStandardArgs)
Modified: brlcad/branches/extbuild/misc/CMake/FindREGEX.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindREGEX.cmake 2020-10-22 15:59:28 UTC
(rev 77546)
+++ brlcad/branches/extbuild/misc/CMake/FindREGEX.cmake 2020-10-22 17:02:28 UTC
(rev 77547)
@@ -46,14 +46,15 @@
# to include its own regex.h copy, check frameworks last - /usr/include
# is preferred to a package-specific copy for a generic regex search
set(CMAKE_FIND_FRAMEWORK LAST)
-find_path(REGEX_INCLUDE_DIR regex.h)
+find_path(REGEX_INCLUDE_DIRS regex.h)
set(REGEX_NAMES c regex compat)
foreach(rname ${REGEX_NAMES})
if(NOT REGEX_LIBRARY)
+ include(CheckLibraryExists)
check_library_exists(${rname} regcomp "" HAVE_REGEX_LIB)
if(HAVE_REGEX_LIB)
- find_library(REGEX_LIBRARY NAMES ${rname})
+ find_library(REGEX_LIBRARIES NAMES ${rname})
endif(HAVE_REGEX_LIB)
endif(NOT REGEX_LIBRARY)
endforeach(rname ${REGEX_NAMES})
@@ -63,10 +64,8 @@
# handle the QUIETLY and REQUIRED arguments and set REGEX_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(REGEX DEFAULT_MSG REGEX_INCLUDE_DIR
REGEX_LIBRARY)
+find_package_handle_standard_args(REGEX DEFAULT_MSG REGEX_INCLUDE_DIRS
REGEX_LIBRARIES)
-set(REGEX_INCLUDE_DIRS ${REGEX_INCLUDE_DIR})
-set(REGEX_LIBRARIES ${REGEX_LIBRARY})
# Local Variables:
# tab-width: 8
Deleted: brlcad/branches/extbuild/misc/CMake/FindSSE.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindSSE.cmake 2020-10-22 15:59:28 UTC
(rev 77546)
+++ brlcad/branches/extbuild/misc/CMake/FindSSE.cmake 2020-10-22 17:02:28 UTC
(rev 77547)
@@ -1,166 +0,0 @@
-# Copyright (c) 2016- Facebook, Inc (Adam Paszke)
-# Copyright (c) 2014- Facebook, Inc (Soumith Chintala)
-# Copyright (c) 2011-2014 Idiap Research Institute (Ronan Collobert)
-# Copyright (c) 2012-2014 Deepmind Technologies (Koray Kavukcuoglu)
-# Copyright (c) 2011-2012 NEC Laboratories America (Koray Kavukcuoglu)
-# Copyright (c) 2011-2013 NYU (Clement Farabet)
-# Copyright (c) 2006-2010 NEC Laboratories America (Ronan Collobert, Leon
Bottou, Iain Melvin, Jason Weston)
-# Copyright (c) 2006 Idiap Research Institute (Samy Bengio)
-# Copyright (c) 2001-2004 Idiap Research Institute (Ronan Collobert, Samy
Bengio, Johnny Mariethoz)
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the names of Facebook, Deepmind Technologies, NYU, NEC
Laboratories America
-# and IDIAP Research Institute nor the names of its contributors may be
-# used to endorse or promote products derived from this software without
-# specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-include(CheckCSourceRuns)
-include(CheckCXXSourceRuns)
-
-set(SSE1_CODE "
- #include <xmmintrin.h>
-
- int main()
- {
- __m128 a;
- float vals[4] = {0,0,0,0};
- a = _mm_loadu_ps(vals);
- return 0;
- }")
-
-set(SSE2_CODE "
- #include <emmintrin.h>
-
- int main()
- {
- __m128d a;
- double vals[2] = {0,0};
- a = _mm_loadu_pd(vals);
- return 0;
- }")
-
-set(SSE3_CODE "
- #include <pmmintrin.h>
-
- int main( )
- {
- const int vals[4] = {0,0,0,0};
- __m128i a;
- a = _mm_lddqu_si128( (const __m128i*)vals );
- return 0;
- }")
-
-set(SSE4_1_CODE "
- #include <smmintrin.h>
-
- int main ()
- {
- __m128i a = {0,0,0,0}, b = {0,0,0,0};
- __m128i res = _mm_max_epi8(a, b);
-
- return 0;
- }
-")
-
-set(SSE4_2_CODE "
- #include <nmmintrin.h>
-
- int main()
- {
- __m128i a = {0,0,0,0}, b = {0,0,0,0}, c = {0,0,0,0};
- c = _mm_cmpgt_epi64(a, b);
- return 0;
- }
-")
-
-set(AVX_CODE "
- #include <immintrin.h>
-
- int main()
- {
- __m256 a;
- a = _mm256_set1_ps(0);
- return 0;
- }
-")
-
-set(AVX2_CODE "
- #include <immintrin.h>
-
- int main()
- {
- __m256i a = {0};
- a = _mm256_abs_epi16(a);
- return 0;
- }
-")
-
-macro(CHECK_SSE lang type flags)
- set(__FLAG_I 1)
- set(CMAKE_REQUIRED_FLAGS_SAVE ${CMAKE_REQUIRED_FLAGS})
- foreach(__FLAG ${flags})
- if(NOT ${lang}_${type}_FOUND)
- set(CMAKE_REQUIRED_FLAGS ${__FLAG})
- if("${lang}" STREQUAL "CXX")
- CHECK_CXX_SOURCE_RUNS("${${type}_CODE}"
"${lang}_HAS_${type}_${__FLAG_I}")
- else()
- CHECK_C_SOURCE_RUNS("${${type}_CODE}"
"${lang}_HAS_${type}_${__FLAG_I}")
- endif("${lang}" STREQUAL "CXX")
- if(${lang}_HAS_${type}_${__FLAG_I})
- set(${lang}_${type}_FOUND TRUE CACHE BOOL "${lang} ${type} support")
- set(${lang}_${type}_FLAGS "${__FLAG}" CACHE STRING "${lang} ${type}
flags")
- endif(${lang}_HAS_${type}_${__FLAG_I})
- math(EXPR __FLAG_I "${__FLAG_I}+1")
- endif(NOT ${lang}_${type}_FOUND)
- endforeach(__FLAG ${flags})
- set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_SAVE})
-
- if(NOT ${lang}_${type}_FOUND)
- set(${lang}_${type}_FOUND FALSE CACHE BOOL "${lang} ${type} support")
- set(${lang}_${type}_FLAGS "" CACHE STRING "${lang} ${type} flags")
- endif(NOT ${lang}_${type}_FOUND)
-
- mark_as_advanced(${lang}_${type}_FOUND ${lang}_${type}_FLAGS)
-
-endmacro(CHECK_SSE)
-
-# Examples:
-
-# CHECK_SSE(C "SSE1" " ;-msse;/arch:SSE")
-# CHECK_SSE(C "SSE2" " ;-msse2;/arch:SSE2")
-# CHECK_SSE(C "SSE3" " ;-msse3;/arch:SSE3")
-# CHECK_SSE(C "SSE4_1" " ;-msse4.1;-msse4;/arch:SSE4")
-# CHECK_SSE(C "SSE4_2" " ;-msse4.2;-msse4;/arch:SSE4")
-# CHECK_SSE(C "AVX" " ;-mavx;/arch:AVX")
-# CHECK_SSE(C "AVX2" " ;-mavx2 -mfma;/arch:AVX2")
-
-# CHECK_SSE(CXX "SSE1" " ;-msse;/arch:SSE")
-# CHECK_SSE(CXX "SSE2" " ;-msse2;/arch:SSE2")
-# CHECK_SSE(CXX "SSE3" " ;-msse3;/arch:SSE3")
-# CHECK_SSE(CXX "SSE4_1" " ;-msse4.1;-msse4;/arch:SSE4")
-# CHECK_SSE(CXX "SSE4_2" " ;-msse4.2;-msse4;/arch:SSE4")
-# CHECK_SSE(CXX "AVX" " ;-mavx;/arch:AVX")
-# CHECK_SSE(CXX "AVX2" " ;-mavx2 -mfma;/arch:AVX2")
Added: brlcad/branches/extbuild/misc/CMake/FindSTEPCODE.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindSTEPCODE.cmake
(rev 0)
+++ brlcad/branches/extbuild/misc/CMake/FindSTEPCODE.cmake 2020-10-22
17:02:28 UTC (rev 77547)
@@ -0,0 +1,164 @@
+# F I N D S T E P C O D E . C M A K E
+# BRL-CAD
+#
+# Copyright (c) 2013-2020 United States Government as represented by
+# the U.S. Army Research Laboratory.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# 3. The name of the author may not be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+###
+# - Find STEPCODE
+#
+# The following variables are set:
+#
+# STEPCODE_INCLUDE_DIRS - where to find stepcode headers
+# STEPCODE_LIBRARIES - List of libraries when using stepcode.
+# STEPCODE_FOUND - True if stepcode found.
+
+
+# A user may set ``STEPCODE_ROOT`` to a stepcode installation root to tell this
+# module where to look.
+# =============================================================================
+
+# Check that each of the libraries has an expected header,
+# as well as the toplevel defined headers. (TODO - are the
+# latter needed beyond the stepcode build itself? Trim this
+# to the minimum actually needed...)
+set(STEPCODE_HDRS
+ base/sc_benchmark.h
+ cldai/sdaiObject.h
+ cleditor/STEPfile.h
+ clstepcore/sdai.h
+ clutils/gennodearray.h
+ exppp/exppp.h
+ express/express.h
+ sc_cf.h
+ )
+
+set(STEPCODE_LIBS
+ base
+ express
+ exppp
+ stepcore
+ stepeditor
+ stepdai
+ steputils
+ )
+
+set(STEPCODE_EXEC
+ exp2cxx
+ exppp
+ )
+
+# Search STEPCODE_ROOT first if it is set.
+set(_STEPCODE_SEARCHES)
+if(STEPCODE_ROOT)
+ set(_STEPCODE_SEARCH_ROOT PATHS ${STEPCODE_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _STEPCODE_SEARCHES _STEPCODE_SEARCH_ROOT)
+endif()
+
+# Try each search configuration.
+foreach(search ${_STEPCODE_SEARCHES})
+ find_path(STEPCODE_BASE_DIR NAMES sc_benchmark.h ${${search}} PATH_SUFFIXES
include include/stepcode/base)
+ find_path(STEPCODE_DAI_DIR NAMES sdaiObject.h ${${search}} PATH_SUFFIXES
include include/stepcode/cldai)
+ find_path(STEPCODE_EDITOR_DIR NAMES STEPfile.h ${${search}} PATH_SUFFIXES
include include/stepcode/cleditor)
+ find_path(STEPCODE_STEPCORE_DIR NAMES sdai.h ${${search}} PATH_SUFFIXES
include include/stepcode/clstepcore)
+ find_path(STEPCODE_UTILS_DIR NAMES gennodearray.h ${${search}} PATH_SUFFIXES
include include/stepcode/clutils)
+ find_path(STEPCODE_EXPPP_DIR NAMES exppp.h ${${search}} PATH_SUFFIXES
include include/stepcode/exppp)
+ find_path(STEPCODE_EXPRESS_DIR NAMES express.h ${${search}} PATH_SUFFIXES
include include/stepcode/express)
+ find_path(STEPCODE_INCLUDE_DIR NAMES sc_cf.h ${${search}} PATH_SUFFIXES
include include/stepcode)
+ #TODO - should be an all-or-nothing for the set...
+endforeach()
+
+# Allow STEPCODE_LIBRARY to be set manually, as the location of the netpbm
library
+foreach(search ${_STEPCODE_SEARCHES})
+ find_library(STEPCODE_BASE_LIBRARY NAMES base NAMES_PER_DIR ${${search}}
PATH_SUFFIXES lib)
+ find_library(STEPCODE_EXPRESS_LIBRARY NAMES express NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
+ find_library(STEPCODE_EXPPP_LIBRARY NAMES exppp NAMES_PER_DIR ${${search}}
PATH_SUFFIXES lib)
+ find_library(STEPCODE_CORE_LIBRARY NAMES stepcore NAMES_PER_DIR ${${search}}
PATH_SUFFIXES lib)
+ find_library(STEPCODE_EDITOR_LIBRARY NAMES stepeditor NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
+ find_library(STEPCODE_DAI_LIBRARY NAMES stepdai NAMES_PER_DIR ${${search}}
PATH_SUFFIXES lib)
+ find_library(STEPCODE_UTILS_LIBRARY NAMES steputils NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
+ #TODO - should be an all-or-nothing for the set...
+endforeach()
+
+# Allow STEPCODE_LIBRARY to be set manually, as the location of the netpbm
library
+foreach(search ${_STEPCODE_SEARCHES})
+ find_program(EXP2CXX_EXECUTABLE exp2cxx ${${search}} PATH_SUFFIXES bin)
+ find_program(EXPPP_EXECUTABLE exppp ${${search}} PATH_SUFFIXES bin)
+ #TODO - should be an all-or-nothing for the set...
+endforeach()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(STEPCODE DEFAULT_MSG
+ STEPCODE_BASE_DIR
+ STEPCODE_DAI_DIR
+ STEPCODE_EDITOR_DIR
+ STEPCODE_STEPCORE_DIR
+ STEPCODE_UTILS_DIR
+ STEPCODE_EXPPP_DIR
+ STEPCODE_EXPRESS_DIR
+ STEPCODE_INCLUDE_DIR
+ STEPCODE_BASE_LIBRARY
+ STEPCODE_EXPRESS_LIBRARY
+ STEPCODE_EXPPP_LIBRARY
+ STEPCODE_CORE_LIBRARY
+ STEPCODE_EDITOR_LIBRARY
+ STEPCODE_DAI_LIBRARY
+ STEPCODE_UTILS_LIBRARY
+ EXP2CXX_EXECUTABLE
+ EXPPP_EXECUTABLE
+ )
+
+if (STEPCODE_FOUND)
+ set(STEPCODE_INCLUDE_DIRS
+ ${STEPCODE_INCLUDE_DIR}
+ ${STEPCODE_BASE_DIR}
+ ${STEPCODE_STEPCORE_DIR}
+ ${STEPCODE_EDITOR_DIR}
+ ${STEPCODE_UTILS_DIR}
+ ${STEPCODE_DAI_DIR}
+ )
+ set(STEPCODE_LIBRARIES
+ ${STEPCODE_BASE_LIBRARY}
+ ${STEPCODE_EXPRESS_LIBRARY}
+ ${STEPCODE_EXPPP_LIBRARY}
+ ${STEPCODE_CORE_LIBRARY}
+ ${STEPCODE_EDITOR_LIBRARY}
+ ${STEPCODE_DAI_LIBRARY}
+ ${STEPCODE_UTILS_LIBRARY}
+ )
+endif()
+
+# Local Variables:
+# tab-width: 8
+# mode: cmake
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=2 tabstop=8
Property changes on: brlcad/branches/extbuild/misc/CMake/FindSTEPCODE.cmake
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Modified: brlcad/branches/extbuild/misc/CMake/FindTCL.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindTCL.cmake 2020-10-22 15:59:28 UTC
(rev 77546)
+++ brlcad/branches/extbuild/misc/CMake/FindTCL.cmake 2020-10-22 17:02:28 UTC
(rev 77547)
@@ -11,24 +11,32 @@
::
- TCL_FOUND = Tcl was found
- TK_FOUND = Tk was found
- TCLTK_FOUND = Tcl and Tk were found
- TCLSH_FOUND = TRUE if tclsh has been found
- TCL_LIBRARY = path to Tcl library (tcl tcl80)
- TCL_INCLUDE_PATH = path to where tcl.h can be found
- TCL_TCLSH = path to tclsh binary (tcl tcl80)
- TK_LIBRARY = path to Tk library (tk tk80 etc)
- TK_INCLUDE_PATH = path to where tk.h can be found
- TK_WISH = full path to the wish executable
- TCL_STUB_LIBRARY = path to Tcl stub library
- TK_STUB_LIBRARY = path to Tk stub library
- TTK_STUB_LIBRARY = path to ttk stub library
+TCL_FOUND = Tcl was found
+TK_FOUND = Tk was found
+TCLTK_FOUND = Tcl and Tk were found
+TCLSH_FOUND = TRUE if tclsh has been found
+TCL_LIBRARY = path to Tcl library (tcl tcl80)
+TCL_INCLUDE_PATH = path to where tcl.h can be found
+TCL_TCLSH = path to tclsh binary (tcl tcl80)
+TK_LIBRARY = path to Tk library (tk tk80 etc)
+TK_INCLUDE_PATH = path to where tk.h can be found
+TK_WISH = full path to the wish executable
+TCL_STUB_LIBRARY = path to Tcl stub library
+TK_STUB_LIBRARY = path to Tk stub library
+TTK_STUB_LIBRARY = path to ttk stub library
#]=======================================================================]
include(CMakeFindFrameworks)
+set(_TCL_SEARCHES)
+
+# Search TCL_ROOT first if it is set.
+if(TCL_ROOT)
+ set(_TCL_SEARCH_ROOT PATHS ${TCL_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _TCL_SEARCHES _TCL_SEARCH_ROOT)
+endif()
+
if(WIN32)
get_filename_component(
ActiveTcl_CurrentVersion
@@ -44,8 +52,8 @@
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/bin"
)
- get_filename_component(
- ActiveTcl_CurrentVersion
+ get_filename_component(
+ ActiveTcl_CurrentVersion
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]"
NAME)
set(TCLTK_POSSIBLE_LIB_PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
@@ -61,7 +69,7 @@
"C:/Tcl/lib"
)
- set(TCLTK_POSSIBLE_INCLUDE_PATHS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
+ set(TCLTK_POSSIBLE_INCLUDE_PATHS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/include"
@@ -87,15 +95,16 @@
tclsh80 tclsh8.0
)
if(CYGWIN)
- set(TCL_TCLSH_NAMES ${TCL_TCLSH_NAMES} cygtclsh83 cygtclsh80)
+ set(TCL_TCLSH_NAMES ${TCL_TCLSH_NAMES} cygtclsh83 cygtclsh80)
endif(CYGWIN)
+foreach(search ${_TCL_SEARCHES})
+ find_program(TCL_TCLSH NAMES ${TCL_TCLSH_NAMES} ${${search}} PATH_SUFFIXES
bin)
+endforeach()
+if (NOT TCL_TCLSH)
+ find_program(TCL_TCLSH NAMES ${TCL_TCLSH_NAMES} HINTS
${TCLTK_POSSIBLE_BIN_PATHS})
+endif (NOT TCL_TCLSH)
-find_program(TCL_TCLSH
- NAMES ${TCL_TCLSH_NAMES}
- HINTS ${TCLTK_POSSIBLE_BIN_PATHS}
- )
-
set(TK_WISH_NAMES
wish
wish${TCL_LIBRARY_VERSION} wish${TK_LIBRARY_VERSION} wish${TCL_TCLSH_VERSION}
@@ -108,13 +117,15 @@
)
if(CYGWIN)
- set(TK_WISH_NAMES ${TK_WISH_NAMES} cygwish80 )
+ set(TK_WISH_NAMES ${TK_WISH_NAMES} cygwish80 )
endif()
-find_program(TK_WISH
- NAMES ${TK_WISH_NAMES}
- HINTS ${TCLTK_POSSIBLE_BIN_PATHS}
- )
+foreach(search ${_TCL_SEARCHES})
+ find_program(TK_WISH NAMES ${TK_WISH_NAMES} ${${search}} PATH_SUFFIXES bin)
+endforeach()
+if (NOT TK_WISH)
+ find_program(TK_WISH NAMES ${TK_WISH_NAMES} HINTS
${TCLTK_POSSIBLE_BIN_PATHS})
+endif (NOT TK_WISH)
if(TCLSH_VERSION_STRING)
set(TCL_TCLSH_VERSION "${TCLSH_VERSION_STRING}")
@@ -132,9 +143,10 @@
"${TK_LIBRARY_PATH}"
"${TCL_TCLSH_PATH_PARENT}/lib"
"${TK_WISH_PATH_PARENT}/lib"
-)
-
+ )
set(TCLTK_POSSIBLE_LIB_PATH_SUFFIXES
+ lib
+ lib/tcl
lib/tcl/tcl8.7
lib/tcl/tk8.7
lib/tcl/tcl8.6
@@ -143,10 +155,9 @@
lib/tcl/tk8.5
lib/tcl/tcl8.4
lib/tcl/tk8.4
-)
+ )
-find_library(TCL_LIBRARY
- NAMES
+set(TCL_POSSIBLE_LIB_NAMES
tcl
tcl${TCL_LIBRARY_VERSION} tcl${TCL_TCLSH_VERSION} tcl${TK_WISH_VERSION}
tcl87 tcl8.7 tcl87t tcl8.7t
@@ -156,12 +167,25 @@
tcl83 tcl8.3
tcl82 tcl8.2
tcl80 tcl8.0
- PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
- PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
)
-find_library(TCL_STUB_LIBRARY
- NAMES
+if(NOT TCL_LIBRARY)
+ foreach(search ${_TCL_SEARCHES})
+ find_library(TCL_LIBRARY
+ NAMES ${TCL_POSSIBLE_LIB_NAMES}
+ NAMES_PER_DIR ${${search}}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES})
+ endforeach()
+endif()
+if(NOT TCL_LIBRARY)
+ find_library(TCL_LIBRARY
+ NAMES ${TCL_POSSIBLE_LIB_NAMES}
+ PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
+ )
+endif(NOT TCL_LIBRARY)
+
+set(TCLSTUB_POSSIBLE_LIB_NAMES
tclstub
tclstub${TK_LIBRARY_VERSION} tclstub${TCL_TCLSH_VERSION}
tclstub${TK_WISH_VERSION}
tclstub87 tclstub8.7
@@ -171,11 +195,24 @@
tclstub83 tclstub8.3
tclstub82 tclstub8.2
tclstub80 tclstub8.0
- PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
-)
+ )
+if(NOT TCL_STUB_LIBRARY)
+ foreach(search ${_TCL_SEARCHES})
+ find_library(TCL_STUB_LIBRARY
+ NAMES ${TCLSTUB_POSSIBLE_LIB_NAMES}
+ NAMES_PER_DIR ${${search}}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
+ )
+ endforeach()
+endif()
+if(NOT TCL_STUB_LIBRARY)
+ find_library(TCL_STUB_LIBRARY
+ NAMES ${TCLSTUB_POSSIBLE_LIB_NAMES}
+ PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+ )
+endif()
-find_library(TK_LIBRARY
- NAMES
+set(TK_POSSIBLE_LIB_NAMES
tk
tk${TK_LIBRARY_VERSION} tk${TCL_TCLSH_VERSION} tk${TK_WISH_VERSION}
tk87 tk8.7 tk87t tk8.7t
@@ -185,12 +222,26 @@
tk83 tk8.3
tk82 tk8.2
tk80 tk8.0
- PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
- PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
)
-find_library(TK_STUB_LIBRARY
- NAMES
+if(NOT TK_LIBRARY)
+ foreach(search ${_TCL_SEARCHES})
+ find_library(TK_LIBRARY
+ NAMES ${TK_POSSIBLE_LIB_NAMES}
+ NAMES_PER_DIR ${${search}}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
+ )
+ endforeach()
+endif()
+if(NOT TK_LIBRARY)
+ find_library(TK_LIBRARY
+ NAMES ${TK_POSSIBLE_LIB_NAMES}
+ PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
+ )
+endif(NOT TK_LIBRARY)
+
+set(TK_STUB_POSSIBLE_LIB_NAMES
tkstub
tkstub${TCL_LIBRARY_VERSION} tkstub${TCL_TCLSH_VERSION}
tkstub${TK_WISH_VERSION}
tkstub87 tkstub8.7
@@ -200,11 +251,25 @@
tkstub83 tkstub8.3
tkstub82 tkstub8.2
tkstub80 tkstub8.0
- PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
-)
+ )
-find_library(TTK_STUB_LIBRARY
- NAMES
+if(NOT TK_STUB_LIBRARY)
+ foreach(search ${_TCL_SEARCHES})
+ find_library(TK_STUB_LIBRARY
+ NAMES ${TK_STUB_POSSIBLE_LIB_NAMES}
+ NAMES_PER_DIR ${${search}}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
+ )
+ endforeach()
+endif()
+if(NOT TK_STUB_LIBRARY)
+ find_library(TK_STUB_LIBRARY
+ NAMES ${TK_STUB_POSSIBLE_LIB_NAMES}
+ PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+ )
+endif()
+
+set(TTK_STUB_POSSIBLE_LIB_NAMES
ttkstub
ttkstub${TCL_LIBRARY_VERSION} ttkstub${TCL_TCLSH_VERSION}
ttkstub${TK_WISH_VERSION}
ttkstub88 ttkstub8.8
@@ -211,9 +276,24 @@
ttkstub87 ttkstub8.7
ttkstub86 ttkstub8.6
ttkstub85 ttkstub8.5
- PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
-)
+ )
+if(NOT TTK_STUB_LIBRARY)
+ foreach(search ${_TCL_SEARCHES})
+ find_library(TTK_STUB_LIBRARY
+ NAMES ${TTK_STUB_POSSIBLE_LIB_NAMES}
+ NAMES_PER_DIR ${${search}}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
+ )
+ endforeach()
+endif()
+if(NOT TTK_STUB_LIBRARY)
+ find_library(TTK_STUB_LIBRARY
+ NAMES ${TTK_STUB_POSSIBLE_LIB_NAMES}
+ PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+ )
+endif()
+
CMAKE_FIND_FRAMEWORKS(Tcl)
CMAKE_FIND_FRAMEWORKS(Tk)
@@ -231,7 +311,7 @@
if(NOT TK_INCLUDE_PATH)
foreach(dir ${Tk_FRAMEWORKS})
set(TK_FRAMEWORK_INCLUDES ${TK_FRAMEWORK_INCLUDES}
- ${dir}/Headers ${dir}/PrivateHeaders)
+ ${dir}/Headers ${dir}/PrivateHeaders)
endforeach()
endif()
endif()
@@ -263,75 +343,90 @@
include/tcl8.0
)
-find_path(TCL_INCLUDE_PATH
- NAMES tcl.h
- HINTS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
- PATH_SUFFIXES ${TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES}
- )
+foreach(search ${_TCL_SEARCHES})
+ find_path(TCL_INCLUDE_PATH
+ NAMES tcl.h ${${search}}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES}
+ )
+endforeach()
+if (NOT TCL_INCLUDE_PATH)
+ find_path(TCL_INCLUDE_PATH
+ NAMES tcl.h
+ HINTS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES}
+ )
+endif()
+foreach(search ${_TCL_SEARCHES})
+ find_path(TK_INCLUDE_PATH
+ NAMES tk.h ${${search}}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES}
+ )
+endforeach()
+if (NOT TK_INCLUDE_PATH)
+ find_path(TK_INCLUDE_PATH
+ NAMES tk.h
+ HINTS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
+ PATH_SUFFIXES ${TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES}
+ )
+endif()
-find_path(TK_INCLUDE_PATH
- NAMES tk.h
- HINTS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
- PATH_SUFFIXES ${TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES}
- )
-
# IFF we have TCL_TK_SYSTEM_GRAPHICS set and have a system TK_WISH, check that
the
# windowing system matches the specified type
if (NOT "${TCL_TK_SYSTEM_GRAPHICS}" STREQUAL "" AND TK_WISH AND NOT TARGET
"${TK_WISH}")
- set(tkwin_script "
- set filename \"${CMAKE_BINARY_DIR}/CMakeTmp/TK_WINDOWINGSYSTEM\"
- set fileId [open $filename \"w\"]
- set windowingsystem [tk windowingsystem]
- puts $fileId $windowingsystem
- close $fileId
- exit
- ")
- set(tkwin_scriptfile
"${CMAKE_BINARY_DIR}/CMakeTmp/tk_windowingsystem.tcl")
- set(WSYS "wm-NOTFOUND")
- file(WRITE ${tkwin_scriptfile} ${tkwin_script})
- execute_process(COMMAND ${TK_WISH} ${tkwin_scriptfile} OUTPUT_VARIABLE
EXECOUTPUT)
- if (EXISTS "${CMAKE_BINARY_DIR}/CMakeTmp/TK_WINDOWINGSYSTEM")
- file(READ "${CMAKE_BINARY_DIR}/CMakeTmp/TK_WINDOWINGSYSTEM"
readresultvar)
- string(REGEX REPLACE "\n" "" WSYS "${readresultvar}")
- endif (EXISTS "${CMAKE_BINARY_DIR}/CMakeTmp/TK_WINDOWINGSYSTEM")
+ set(tkwin_script "
+ set filename \"${CMAKE_BINARY_DIR}/CMakeTmp/TK_WINDOWINGSYSTEM\"
+ set fileId [open $filename \"w\"]
+ set windowingsystem [tk windowingsystem]
+ puts $fileId $windowingsystem
+ close $fileId
+ exit
+ ")
+ set(tkwin_scriptfile "${CMAKE_BINARY_DIR}/CMakeTmp/tk_windowingsystem.tcl")
+ set(WSYS "wm-NOTFOUND")
+ file(WRITE ${tkwin_scriptfile} ${tkwin_script})
+ execute_process(COMMAND ${TK_WISH} ${tkwin_scriptfile} OUTPUT_VARIABLE
EXECOUTPUT)
+ if (EXISTS "${CMAKE_BINARY_DIR}/CMakeTmp/TK_WINDOWINGSYSTEM")
+ file(READ "${CMAKE_BINARY_DIR}/CMakeTmp/TK_WINDOWINGSYSTEM" readresultvar)
+ string(REGEX REPLACE "\n" "" WSYS "${readresultvar}")
+ endif (EXISTS "${CMAKE_BINARY_DIR}/CMakeTmp/TK_WINDOWINGSYSTEM")
- # If we have no information about the windowing system or it does not
match
- # a specified system, the find_package detection has failed
- if (NOT "${WSYS}" STREQUAL "${TCL_TK_SYSTEM_GRAPHICS}")
- unset(TCL_LIBRARY CACHE)
- unset(TCL_STUB_LIBRARY CACHE)
- unset(TK_LIBRARY CACHE)
- unset(TK_STUB_LIBRARY CACHE)
- unset(TCL_FOUND CACHE)
- unset(TK_FOUND CACHE)
- unset(TCLTK_FOUND CACHE)
- unset(TCLSH_FOUND CACHE)
- unset(TCL_LIBRARY CACHE)
- unset(TCL_INCLUDE_PATH CACHE)
- unset(TCL_TCLSH CACHE)
- unset(TK_LIBRARY CACHE)
- unset(TK_INCLUDE_PATH CACHE)
- unset(TK_WISH CACHE)
- unset(TCL_STUB_LIBRARY CACHE)
- unset(TK_STUB_LIBRARY CACHE)
- unset(TTK_STUB_LIBRARY CACHE)
- endif (NOT "${WSYS}" STREQUAL "${TCL_TK_SYSTEM_GRAPHICS}")
+ # If we have no information about the windowing system or it does not match
+ # a specified system, the find_package detection has failed
+ if (NOT "${WSYS}" STREQUAL "${TCL_TK_SYSTEM_GRAPHICS}")
+ unset(TCL_LIBRARY CACHE)
+ unset(TCL_STUB_LIBRARY CACHE)
+ unset(TK_LIBRARY CACHE)
+ unset(TK_STUB_LIBRARY CACHE)
+ unset(TCL_FOUND CACHE)
+ unset(TK_FOUND CACHE)
+ unset(TCLTK_FOUND CACHE)
+ unset(TCLSH_FOUND CACHE)
+ unset(TCL_LIBRARY CACHE)
+ unset(TCL_INCLUDE_PATH CACHE)
+ unset(TCL_TCLSH CACHE)
+ unset(TK_LIBRARY CACHE)
+ unset(TK_INCLUDE_PATH CACHE)
+ unset(TK_WISH CACHE)
+ unset(TCL_STUB_LIBRARY CACHE)
+ unset(TK_STUB_LIBRARY CACHE)
+ unset(TTK_STUB_LIBRARY CACHE)
+ endif (NOT "${WSYS}" STREQUAL "${TCL_TK_SYSTEM_GRAPHICS}")
endif (NOT "${TCL_TK_SYSTEM_GRAPHICS}" STREQUAL "" AND TK_WISH AND NOT TARGET
"${TK_WISH}")
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(TCL
- REQUIRED_VARS TCL_LIBRARY TCL_STUB_LIBRARY TCL_INCLUDE_PATH TCL_TCLSH
- VERSION_VAR TCLSH_VERSION_STRING)
+ REQUIRED_VARS TCL_LIBRARY TCL_STUB_LIBRARY TCL_INCLUDE_PATH TCL_TCLSH
+ VERSION_VAR TCLSH_VERSION_STRING)
set(FPHSA_NAME_MISMATCHED 1)
set(TCLTK_FIND_REQUIRED ${TCL_FIND_REQUIRED})
set(TCLTK_FIND_QUIETLY ${TCL_FIND_QUIETLY})
FIND_PACKAGE_HANDLE_STANDARD_ARGS(TCLTK
- REQUIRED_VARS TCL_LIBRARY TCL_STUB_LIBRARY TCL_INCLUDE_PATH TK_LIBRARY
TK_STUB_LIBRARY TK_INCLUDE_PATH)
+ REQUIRED_VARS TCL_LIBRARY TCL_STUB_LIBRARY TCL_INCLUDE_PATH TK_LIBRARY
TK_STUB_LIBRARY TK_INCLUDE_PATH)
set(TK_FIND_REQUIRED ${TCL_FIND_REQUIRED})
set(TK_FIND_QUIETLY ${TCL_FIND_QUIETLY})
FIND_PACKAGE_HANDLE_STANDARD_ARGS(TK
- REQUIRED_VARS TK_LIBRARY TK_STUB_LIBRARY TK_INCLUDE_PATH TK_WISH)
+ REQUIRED_VARS TK_LIBRARY TK_STUB_LIBRARY TK_INCLUDE_PATH TK_WISH)
unset(FPHSA_NAME_MISMATCHED)
mark_as_advanced(
@@ -346,3 +441,10 @@
TTK_STUB_LIBRARY
)
+
+# Local Variables:
+# tab-width: 8
+# mode: cmake
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=2 tabstop=8
Modified: brlcad/branches/extbuild/misc/CMake/FindUTAHRLE.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindUTAHRLE.cmake 2020-10-22
15:59:28 UTC (rev 77546)
+++ brlcad/branches/extbuild/misc/CMake/FindUTAHRLE.cmake 2020-10-22
17:02:28 UTC (rev 77547)
@@ -1,62 +1,102 @@
-# F I N D U T A H R L E . C M A K E
-# BRL-CAD
-#
-# Copyright (c) 2011-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-# - Find UtahRLE libraries
-#
-# The following variables are set:
-#
-# UTAHRLE_LIBRARY
-# The following variables are set:
-#
-# UTAHRLE_INCLUDE_DIRS - where to find zlib.h, etc.
-# UTAHRLE_LIBRARIES - List of libraries when using zlib.
-# UTAHRLE_FOUND - True if zlib found.
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
-find_path(UTAHRLE_INCLUDE_DIR rle.h)
-find_library(UTAHRLE_LIBRARY NAMES UTAHRLE)
+#[=======================================================================[.rst:
+FindUTAHRLE
+--------
+Find the native UTAHRLE includes and library.
+
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
+
+This module defines :prop_tgt:`IMPORTED` target ``UTAHRLE::UTAHRLE``, if
+UTAHRLE has been found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+::
+
+ UTAHRLE_INCLUDE_DIRS - where to find pam.h, etc.
+ UTAHRLE_LIBRARIES - List of libraries when using utahrle.
+ UTAHRLE_FOUND - True if utahrle found.
+
+Hints
+^^^^^
+
+A user may set ``UTAHRLE_ROOT`` to a utahrle installation root to tell this
+module where to look.
+#]=======================================================================]
+
+set(_UTAHRLE_SEARCHES)
+
+# Search UTAHRLE_ROOT first if it is set.
+if(UTAHRLE_ROOT)
+ set(_UTAHRLE_SEARCH_ROOT PATHS ${UTAHRLE_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _UTAHRLE_SEARCHES _UTAHRLE_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_UTAHRLE_x86 "(x86)")
+set(_UTAHRLE_SEARCH_NORMAL
+ PATHS "$ENV{ProgramFiles}/utahrle"
+ "$ENV{ProgramFiles${_UTAHRLE_x86}}/utahrle")
+unset(_UTAHRLE_x86)
+list(APPEND _UTAHRLE_SEARCHES _UTAHRLE_SEARCH_NORMAL)
+
+set(UTAHRLE_NAMES utahrle)
+
+# Try each search configuration.
+foreach(search ${_UTAHRLE_SEARCHES})
+ find_path(UTAHRLE_INCLUDE_DIR NAMES rle.h ${${search}} PATH_SUFFIXES include
include/utahrle)
+endforeach()
+
+# Allow UTAHRLE_LIBRARY to be set manually, as the location of the utahrle
library
+if(NOT UTAHRLE_LIBRARY)
+ foreach(search ${_UTAHRLE_SEARCHES})
+ find_library(UTAHRLE_LIBRARY NAMES ${UTAHRLE_NAMES} NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
+ endforeach()
+endif()
+
+unset(UTAHRLE_NAMES)
+
+mark_as_advanced(UTAHRLE_INCLUDE_DIR)
+
include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(UTAHRLE DEFAULT_MSG UTAHRLE_LIBRARY
UTAHRLE_INCLUDE_DIR)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(UTAHRLE REQUIRED_VARS UTAHRLE_LIBRARY
UTAHRLE_INCLUDE_DIR)
-IF (UTAHRLE_FOUND)
- set(UTAHRLE_INCLUDE_DIRS ${UTAHRLE_INCLUDE_DIR})
- set(UTAHRLE_LIBRARIES ${UTAHRLE_LIBRARY})
+if(UTAHRLE_FOUND)
+ set(UTAHRLE_INCLUDE_DIRS ${UTAHRLE_INCLUDE_DIR})
+
+ if(NOT UTAHRLE_LIBRARIES)
+ set(UTAHRLE_LIBRARIES ${UTAHRLE_LIBRARY})
+ endif()
+
+ if(NOT TARGET UTAHRLE::UTAHRLE)
+ add_library(UTAHRLE::UTAHRLE UNKNOWN IMPORTED)
+ set_target_properties(UTAHRLE::UTAHRLE PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${UTAHRLE_INCLUDE_DIRS}")
+
+ if(UTAHRLE_LIBRARY_RELEASE)
+ set_property(TARGET UTAHRLE::UTAHRLE APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(UTAHRLE::UTAHRLE PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${UTAHRLE_LIBRARY_RELEASE}")
+ endif()
+
+ if(UTAHRLE_LIBRARY_DEBUG)
+ set_property(TARGET UTAHRLE::UTAHRLE APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(UTAHRLE::UTAHRLE PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${UTAHRLE_LIBRARY_DEBUG}")
+ endif()
+
+ if(NOT UTAHRLE_LIBRARY_RELEASE AND NOT UTAHRLE_LIBRARY_DEBUG)
+ set_property(TARGET UTAHRLE::UTAHRLE APPEND PROPERTY
+ IMPORTED_LOCATION "${UTAHRLE_LIBRARY}")
+ endif()
+ endif()
endif()
-# Local Variables:
-# tab-width: 8
-# mode: cmake
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=2 tabstop=8
Modified: brlcad/branches/extbuild/misc/tools/dom2dox/CMake/FindLEMON.cmake
===================================================================
--- brlcad/branches/extbuild/misc/tools/dom2dox/CMake/FindLEMON.cmake
2020-10-22 15:59:28 UTC (rev 77546)
+++ brlcad/branches/extbuild/misc/tools/dom2dox/CMake/FindLEMON.cmake
2020-10-22 17:02:28 UTC (rev 77547)
@@ -44,9 +44,35 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
-find_program(LEMON_EXECUTABLE lemon DOC "path to the lemon executable")
+set(_LEMON_SEARCHES)
+
+# Search LEMON_ROOT first if it is set.
+if(LEMON_ROOT)
+ set(_LEMON_SEARCH_ROOT PATHS ${LEMON_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _LEMON_SEARCHES _LEMON_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_LEMON_x86 "(x86)")
+set(_LEMON_SEARCH_NORMAL
+ PATHS "$ENV{ProgramFiles}/lemon"
+ "$ENV{ProgramFiles${_LEMON_x86}}/lemon")
+unset(_LEMON_x86)
+list(APPEND _LEMON_SEARCHES _LEMON_SEARCH_NORMAL)
+
+set(LEMON_NAMES lemon)
+
+# Try each search configuration.
+foreach(search ${_LEMON_SEARCHES})
+ find_program(LEMON_EXECUTABLE lemon ${${search}} PATH_SUFFIXES bin)
+endforeach()
mark_as_advanced(LEMON_EXECUTABLE)
+foreach(search ${_LEMON_SEARCHES})
+ find_file(LEMON_TEMPLATE lempar.c ${${search}} PATH_SUFFIXES ${DATA_DIR}
${DATA_DIR}/lemon)
+endforeach()
+mark_as_advanced(LEMON_TEMPLATE)
+
if (LEMON_EXECUTABLE AND NOT LEMON_TEMPLATE)
# look for the template in share
if (DATA_DIR AND EXISTS "${DATA_DIR}/lemon/lempar.c")
@@ -113,6 +139,10 @@
CMAKE_PARSE_ARGUMENTS(${LVAR_PREFIX} ""
"OUT_SRC_FILE;OUT_HDR_FILE;WORKING_DIR;EXTRA_ARGS" "" ${ARGN})
endif(${ARGC} GREATER 3)
+ if (TARGET perplex_stage)
+ set(DEPS_TARGET perplex_stage)
+ endif (TARGET perplex_stage)
+
# Need a working directory
if("${${LVAR_PREFIX}_WORKING_DIR}" STREQUAL "")
set(${LVAR_PREFIX}_WORKING_DIR
"${CMAKE_CURRENT_BINARY_DIR}/${LVAR_PREFIX}")
@@ -161,7 +191,7 @@
OUTPUT ${LEMON_GEN_OUT} ${LEMON_GEN_SOURCE} ${LEMON_GEN_HEADER}
COMMAND ${CMAKE_COMMAND} -E copy ${lemon_in_file}
${${LVAR_PREFIX}_WORKING_DIR}/${INPUT_NAME}
COMMAND ${LEMON_EXECUTABLE} -T${LEMON_TEMPLATE}
${${LVAR_PREFIX}_WORKING_DIR}/${INPUT_NAME} ${${LVAR_PREFIX}__EXTRA_ARGS}
- DEPENDS ${Input} ${LEMON_TEMPLATE} ${LEMON_EXECUTABLE_TARGET}
+ DEPENDS ${Input} ${LEMON_EXECUTABLE_TARGET} ${DEPS_TARGET}
WORKING_DIRECTORY ${${LVAR_PREFIX}_WORKING_DIR}
COMMENT "[LEMON][${Name}] Building parser with ${LEMON_EXECUTABLE}"
)
@@ -171,7 +201,7 @@
add_custom_command(
OUTPUT ${${LVAR_PREFIX}_OUT_SRC_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${LEMON_GEN_SOURCE}
${${LVAR_PREFIX}_OUT_SRC_FILE}
- DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_SOURCE}
+ DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_SOURCE}
${DEPS_TARGET}
)
set(LEMON_${Name}_OUTPUTS ${${LVAR_PREFIX}_OUT_SRC_FILE}
${LEMON_${Name}_OUTPUTS})
endif(NOT "${${LVAR_PREFIX}_OUT_SRC_FILE}" STREQUAL "${LEMON_GEN_SOURCE}")
@@ -179,7 +209,7 @@
add_custom_command(
OUTPUT ${${LVAR_PREFIX}_OUT_HDR_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${LEMON_GEN_HEADER}
${${LVAR_PREFIX}_OUT_HDR_FILE}
- DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_HEADER}
+ DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_HEADER}
${DEPS_TARGET}
)
set(LEMON_${Name}_OUTPUTS ${${LVAR_PREFIX}_OUT_HDR_FILE}
${LEMON_${Name}_OUTPUTS})
endif(NOT "${${LVAR_PREFIX}_OUT_HDR_FILE}" STREQUAL "${LEMON_GEN_HEADER}")
Modified: brlcad/branches/extbuild/misc/tools/dom2dox/CMake/FindPERPLEX.cmake
===================================================================
--- brlcad/branches/extbuild/misc/tools/dom2dox/CMake/FindPERPLEX.cmake
2020-10-22 15:59:28 UTC (rev 77546)
+++ brlcad/branches/extbuild/misc/tools/dom2dox/CMake/FindPERPLEX.cmake
2020-10-22 17:02:28 UTC (rev 77547)
@@ -44,9 +44,35 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
-find_program(PERPLEX_EXECUTABLE perplex DOC "path to the perplex executable")
+set(_PERPLEX_SEARCHES)
+
+# Search PERPLEX_ROOT first if it is set.
+if(PERPLEX_ROOT)
+ set(_PERPLEX_SEARCH_ROOT PATHS ${PERPLEX_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _PERPLEX_SEARCHES _PERPLEX_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_PERPLEX_x86 "(x86)")
+set(_PERPLEX_SEARCH_NORMAL
+ PATHS "$ENV{ProgramFiles}/perplex"
+ "$ENV{ProgramFiles${_PERPLEX_x86}}/perplex")
+unset(_PERPLEX_x86)
+list(APPEND _PERPLEX_SEARCHES _PERPLEX_SEARCH_NORMAL)
+
+set(PERPLEX_NAMES perplex)
+
+# Try each search configuration.
+foreach(search ${_PERPLEX_SEARCHES})
+ find_program(PERPLEX_EXECUTABLE perplex ${${search}} PATH_SUFFIXES bin)
+endforeach()
mark_as_advanced(PERPLEX_EXECUTABLE)
+foreach(search ${_PERPLEX_SEARCHES})
+ find_file(PERPLEX_TEMPLATE perplex_template.c ${${search}} PATH_SUFFIXES
${DATA_DIR} ${DATA_DIR}/perplex)
+endforeach()
+mark_as_advanced(PERPLEX_TEMPLATE)
+
if(PERPLEX_EXECUTABLE AND NOT PERPLEX_TEMPLATE)
get_filename_component(perplex_path ${PERPLEX_EXECUTABLE} PATH)
if(perplex_path)
@@ -141,6 +167,10 @@
get_filename_component(IN_FILE_WE ${Input} NAME_WE)
set(PVAR_PREFIX ${Name}_${IN_FILE_WE})
+ if (TARGET perplex_stage)
+ set(DEP_TARGET perplex_stage)
+ endif (TARGET perplex_stage)
+
if(${ARGC} GREATER 3)
CMAKE_PARSE_ARGUMENTS(${PVAR_PREFIX} ""
"TEMPLATE;OUT_SRC_FILE;OUT_HDR_FILE;WORKING_DIR" "" ${ARGN})
endif(${ARGC} GREATER 3)
@@ -200,7 +230,7 @@
OUTPUT ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${perplex_in_file}
${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
COMMAND ${PERPLEX_EXECUTABLE} -c -o ${re2c_src} -i
${${PVAR_PREFIX}_OUT_HDR_FILE} -t ${${PVAR_PREFIX}_TEMPLATE}
${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
- DEPENDS ${Input} ${${PVAR_PREFIX}_TEMPLATE} ${PERPLEX_EXECUTABLE_TARGET}
${RE2C_EXECUTABLE_TARGET}
+ DEPENDS ${Input} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
${DEP_TARGET}
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
COMMENT "[PERPLEX][${Name}] Generating re2c input with
${PERPLEX_EXECUTABLE}"
)
@@ -209,7 +239,7 @@
add_custom_command(
OUTPUT ${${PVAR_PREFIX}_OUT_SRC_FILE}
COMMAND ${RE2C_EXECUTABLE} --no-debug-info --no-generation-date -c -o
${${PVAR_PREFIX}_OUT_SRC_FILE} ${re2c_src}
- DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
+ DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET} ${DEP_TARGET}
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
)
@@ -217,7 +247,7 @@
add_custom_command(
OUTPUT ${${PVAR_PREFIX}_OUT_SRC_FILE}
COMMAND ${RE2C_EXECUTABLE} --no-generation-date -c -o
${${PVAR_PREFIX}_OUT_SRC_FILE} ${re2c_src}
- DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
+ DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET} ${DEP_TARGET}
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
)
Modified:
brlcad/branches/extbuild/src/libgcv/plugins/obj/wfobj/CMake/FindLEMON.cmake
===================================================================
--- brlcad/branches/extbuild/src/libgcv/plugins/obj/wfobj/CMake/FindLEMON.cmake
2020-10-22 15:59:28 UTC (rev 77546)
+++ brlcad/branches/extbuild/src/libgcv/plugins/obj/wfobj/CMake/FindLEMON.cmake
2020-10-22 17:02:28 UTC (rev 77547)
@@ -44,9 +44,35 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
-find_program(LEMON_EXECUTABLE lemon DOC "path to the lemon executable")
+set(_LEMON_SEARCHES)
+
+# Search LEMON_ROOT first if it is set.
+if(LEMON_ROOT)
+ set(_LEMON_SEARCH_ROOT PATHS ${LEMON_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _LEMON_SEARCHES _LEMON_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_LEMON_x86 "(x86)")
+set(_LEMON_SEARCH_NORMAL
+ PATHS "$ENV{ProgramFiles}/lemon"
+ "$ENV{ProgramFiles${_LEMON_x86}}/lemon")
+unset(_LEMON_x86)
+list(APPEND _LEMON_SEARCHES _LEMON_SEARCH_NORMAL)
+
+set(LEMON_NAMES lemon)
+
+# Try each search configuration.
+foreach(search ${_LEMON_SEARCHES})
+ find_program(LEMON_EXECUTABLE lemon ${${search}} PATH_SUFFIXES bin)
+endforeach()
mark_as_advanced(LEMON_EXECUTABLE)
+foreach(search ${_LEMON_SEARCHES})
+ find_file(LEMON_TEMPLATE lempar.c ${${search}} PATH_SUFFIXES ${DATA_DIR}
${DATA_DIR}/lemon)
+endforeach()
+mark_as_advanced(LEMON_TEMPLATE)
+
if (LEMON_EXECUTABLE AND NOT LEMON_TEMPLATE)
# look for the template in share
if (DATA_DIR AND EXISTS "${DATA_DIR}/lemon/lempar.c")
@@ -113,6 +139,10 @@
CMAKE_PARSE_ARGUMENTS(${LVAR_PREFIX} ""
"OUT_SRC_FILE;OUT_HDR_FILE;WORKING_DIR;EXTRA_ARGS" "" ${ARGN})
endif(${ARGC} GREATER 3)
+ if (TARGET perplex_stage)
+ set(DEPS_TARGET perplex_stage)
+ endif (TARGET perplex_stage)
+
# Need a working directory
if("${${LVAR_PREFIX}_WORKING_DIR}" STREQUAL "")
set(${LVAR_PREFIX}_WORKING_DIR
"${CMAKE_CURRENT_BINARY_DIR}/${LVAR_PREFIX}")
@@ -161,7 +191,7 @@
OUTPUT ${LEMON_GEN_OUT} ${LEMON_GEN_SOURCE} ${LEMON_GEN_HEADER}
COMMAND ${CMAKE_COMMAND} -E copy ${lemon_in_file}
${${LVAR_PREFIX}_WORKING_DIR}/${INPUT_NAME}
COMMAND ${LEMON_EXECUTABLE} -T${LEMON_TEMPLATE}
${${LVAR_PREFIX}_WORKING_DIR}/${INPUT_NAME} ${${LVAR_PREFIX}__EXTRA_ARGS}
- DEPENDS ${Input} ${LEMON_TEMPLATE} ${LEMON_EXECUTABLE_TARGET}
+ DEPENDS ${Input} ${LEMON_EXECUTABLE_TARGET} ${DEPS_TARGET}
WORKING_DIRECTORY ${${LVAR_PREFIX}_WORKING_DIR}
COMMENT "[LEMON][${Name}] Building parser with ${LEMON_EXECUTABLE}"
)
@@ -171,7 +201,7 @@
add_custom_command(
OUTPUT ${${LVAR_PREFIX}_OUT_SRC_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${LEMON_GEN_SOURCE}
${${LVAR_PREFIX}_OUT_SRC_FILE}
- DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_SOURCE}
+ DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_SOURCE}
${DEPS_TARGET}
)
set(LEMON_${Name}_OUTPUTS ${${LVAR_PREFIX}_OUT_SRC_FILE}
${LEMON_${Name}_OUTPUTS})
endif(NOT "${${LVAR_PREFIX}_OUT_SRC_FILE}" STREQUAL "${LEMON_GEN_SOURCE}")
@@ -179,7 +209,7 @@
add_custom_command(
OUTPUT ${${LVAR_PREFIX}_OUT_HDR_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${LEMON_GEN_HEADER}
${${LVAR_PREFIX}_OUT_HDR_FILE}
- DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_HEADER}
+ DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_HEADER}
${DEPS_TARGET}
)
set(LEMON_${Name}_OUTPUTS ${${LVAR_PREFIX}_OUT_HDR_FILE}
${LEMON_${Name}_OUTPUTS})
endif(NOT "${${LVAR_PREFIX}_OUT_HDR_FILE}" STREQUAL "${LEMON_GEN_HEADER}")
Modified:
brlcad/branches/extbuild/src/libgcv/plugins/obj/wfobj/CMake/FindPERPLEX.cmake
===================================================================
---
brlcad/branches/extbuild/src/libgcv/plugins/obj/wfobj/CMake/FindPERPLEX.cmake
2020-10-22 15:59:28 UTC (rev 77546)
+++
brlcad/branches/extbuild/src/libgcv/plugins/obj/wfobj/CMake/FindPERPLEX.cmake
2020-10-22 17:02:28 UTC (rev 77547)
@@ -44,9 +44,35 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
-find_program(PERPLEX_EXECUTABLE perplex DOC "path to the perplex executable")
+set(_PERPLEX_SEARCHES)
+
+# Search PERPLEX_ROOT first if it is set.
+if(PERPLEX_ROOT)
+ set(_PERPLEX_SEARCH_ROOT PATHS ${PERPLEX_ROOT} NO_DEFAULT_PATH)
+ list(APPEND _PERPLEX_SEARCHES _PERPLEX_SEARCH_ROOT)
+endif()
+
+# Normal search.
+set(_PERPLEX_x86 "(x86)")
+set(_PERPLEX_SEARCH_NORMAL
+ PATHS "$ENV{ProgramFiles}/perplex"
+ "$ENV{ProgramFiles${_PERPLEX_x86}}/perplex")
+unset(_PERPLEX_x86)
+list(APPEND _PERPLEX_SEARCHES _PERPLEX_SEARCH_NORMAL)
+
+set(PERPLEX_NAMES perplex)
+
+# Try each search configuration.
+foreach(search ${_PERPLEX_SEARCHES})
+ find_program(PERPLEX_EXECUTABLE perplex ${${search}} PATH_SUFFIXES bin)
+endforeach()
mark_as_advanced(PERPLEX_EXECUTABLE)
+foreach(search ${_PERPLEX_SEARCHES})
+ find_file(PERPLEX_TEMPLATE perplex_template.c ${${search}} PATH_SUFFIXES
${DATA_DIR} ${DATA_DIR}/perplex)
+endforeach()
+mark_as_advanced(PERPLEX_TEMPLATE)
+
if(PERPLEX_EXECUTABLE AND NOT PERPLEX_TEMPLATE)
get_filename_component(perplex_path ${PERPLEX_EXECUTABLE} PATH)
if(perplex_path)
@@ -141,6 +167,10 @@
get_filename_component(IN_FILE_WE ${Input} NAME_WE)
set(PVAR_PREFIX ${Name}_${IN_FILE_WE})
+ if (TARGET perplex_stage)
+ set(DEP_TARGET perplex_stage)
+ endif (TARGET perplex_stage)
+
if(${ARGC} GREATER 3)
CMAKE_PARSE_ARGUMENTS(${PVAR_PREFIX} ""
"TEMPLATE;OUT_SRC_FILE;OUT_HDR_FILE;WORKING_DIR" "" ${ARGN})
endif(${ARGC} GREATER 3)
@@ -200,7 +230,7 @@
OUTPUT ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${perplex_in_file}
${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
COMMAND ${PERPLEX_EXECUTABLE} -c -o ${re2c_src} -i
${${PVAR_PREFIX}_OUT_HDR_FILE} -t ${${PVAR_PREFIX}_TEMPLATE}
${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
- DEPENDS ${Input} ${${PVAR_PREFIX}_TEMPLATE} ${PERPLEX_EXECUTABLE_TARGET}
${RE2C_EXECUTABLE_TARGET}
+ DEPENDS ${Input} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
${DEP_TARGET}
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
COMMENT "[PERPLEX][${Name}] Generating re2c input with
${PERPLEX_EXECUTABLE}"
)
@@ -209,7 +239,7 @@
add_custom_command(
OUTPUT ${${PVAR_PREFIX}_OUT_SRC_FILE}
COMMAND ${RE2C_EXECUTABLE} --no-debug-info --no-generation-date -c -o
${${PVAR_PREFIX}_OUT_SRC_FILE} ${re2c_src}
- DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
+ DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET} ${DEP_TARGET}
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
)
@@ -217,7 +247,7 @@
add_custom_command(
OUTPUT ${${PVAR_PREFIX}_OUT_SRC_FILE}
COMMAND ${RE2C_EXECUTABLE} --no-generation-date -c -o
${${PVAR_PREFIX}_OUT_SRC_FILE} ${re2c_src}
- DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
+ DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE}
${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET} ${DEP_TARGET}
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
)
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits