We should have a working autotools build with the step tweaks now - make trunk step directory match that from CMake. Since there is no previous CMake build for the step subdirectory, go ahead and put everything here.

git-svn-id: https://brlcad.svn.sourceforge.net/svnroot/brlcad/brlcad/trunk/src/other/step@43254 2f96ce8b-6d43-0410-b8df-bffccc660ffb
This commit is contained in:
starseeker 2011-02-12 00:35:17 +00:00 committed by Mark Pictor
parent 1ad794fe37
commit 256bf1e7b9
33 changed files with 1172 additions and 73 deletions

View file

@ -0,0 +1,84 @@
# - Check if the given C source code compiles and runs.
# CHECK_C_SOURCE_RUNS(<code> <var>)
# <code> - source code to try to compile
# <var> - variable to store the result
# (1 for success, empty for failure)
# The following variables may be set before calling this macro to
# modify the way the check is run:
#
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
# CMAKE_REQUIRED_INCLUDES = list of include directories
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
#=============================================================================
# Copyright 2006-2009 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distributed this file outside of CMake, substitute the full
# License text for the above reference.)
MACRO(CHECK_C_FILE_RUNS SOURCE VAR)
IF("${VAR}" MATCHES "^${VAR}$")
SET(MACRO_CHECK_FUNCTION_DEFINITIONS
"-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
IF(CMAKE_REQUIRED_LIBRARIES)
SET(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
ELSE(CMAKE_REQUIRED_LIBRARIES)
SET(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES)
ENDIF(CMAKE_REQUIRED_LIBRARIES)
IF(CMAKE_REQUIRED_INCLUDES)
SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
ELSE(CMAKE_REQUIRED_INCLUDES)
SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES)
ENDIF(CMAKE_REQUIRED_INCLUDES)
MESSAGE(STATUS "Performing Test ${VAR}")
TRY_RUN(${VAR}_EXITCODE ${VAR}_COMPILED
${CMAKE_BINARY_DIR}
${SOURCE}
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} ${FILE_RUN_DEFINITIONS}
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
-DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
"${CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}"
"${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}"
COMPILE_OUTPUT_VARIABLE OUTPUT)
# if it did not compile make the return value fail code of 1
IF(NOT ${VAR}_COMPILED)
SET(${VAR}_EXITCODE 1)
ENDIF(NOT ${VAR}_COMPILED)
# if the return value was 0 then it worked
IF("${${VAR}_EXITCODE}" EQUAL 0)
SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
MESSAGE(STATUS "Performing Test ${VAR} - Success")
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
"Performing C SOURCE FILE Test ${VAR} succeded with the following output:\n"
"${OUTPUT}\n"
"Return value: ${${VAR}}\n"
"Source file was:\n${SOURCE}\n")
ELSE("${${VAR}_EXITCODE}" EQUAL 0)
IF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
SET(${VAR} "${${VAR}_EXITCODE}")
ELSE(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
SET(${VAR} "" CACHE INTERNAL "Test ${VAR}")
ENDIF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
MESSAGE(STATUS "Performing Test ${VAR} - Failed")
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
"Performing C SOURCE FILE Test ${VAR} failed with the following output:\n"
"${OUTPUT}\n"
"Return value: ${${VAR}_EXITCODE}\n"
"Source file was:\n${SOURCE}\n")
ENDIF("${${VAR}_EXITCODE}" EQUAL 0)
ENDIF("${VAR}" MATCHES "^${VAR}$")
ENDMACRO(CHECK_C_FILE_RUNS)

164
CMake/FindLEX.cmake Normal file
View file

@ -0,0 +1,164 @@
# - Find lex executable and provides a macro to generate custom build rules
#
# The module defines the following variables:
# LEX_FOUND - true is lex executable is found
# LEX_EXECUTABLE - the path to the lex executable
# LEX_LIBRARIES - The lex libraries
#
# If lex is found on the system, the module provides the macro:
# LEX_TARGET(Name FlexInput FlexOutput [COMPILE_FLAGS <string>])
# which creates a custom command to generate the <FlexOutput> file from
# the <FlexInput> file. If COMPILE_FLAGS option is specified, the next
# parameter is added to the lex command line. Name is an alias used to
# get details of this custom command. Indeed the macro defines the
# following variables:
# LEX_${Name}_DEFINED - true is the macro ran successfully
# LEX_${Name}_OUTPUTS - the source file generated by the custom rule, an
# alias for FlexOutput
# LEX_${Name}_INPUT - the lex source file, an alias for ${FlexInput}
#
# Flex scanners oftenly use tokens defined by Yacc: the code generated
# by Flex depends of the header generated by Yacc. This module also
# defines a macro:
# ADD_LEX_YACC_DEPENDENCY(FlexTarget YaccTarget)
# which adds the required dependency between a scanner and a parser
# where <FlexTarget> and <YaccTarget> are the first parameters of
# respectively LEX_TARGET and YACC_TARGET macros.
#
# ====================================================================
# Example:
#
# find_package(YACC)
# find_package(LEX)
#
# YACC_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp
# LEX_TARGET(MyScanner lexer.l ${CMAKE_CURRENT_BIANRY_DIR}/lexer.cpp)
# ADD_LEX_YACC_DEPENDENCY(MyScanner MyParser)
#
# include_directories(${CMAKE_CURRENT_BINARY_DIR})
# add_executable(Foo
# Foo.cc
# ${YACC_MyParser_OUTPUTS}
# ${LEX_MyScanner_OUTPUTS}
# )
# ====================================================================
#
#=============================================================================
# Copyright 2010 United States Government as represented by
# the U.S. Army Research Laboratory.
# Copyright 2009 Kitware, Inc.
# Copyright 2006 Tristan Carel
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# * 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.
#
# * The names of the authors may not 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
# HOLDER 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.
#=============================================================================
FIND_PROGRAM(LEX_EXECUTABLE flex DOC "path to the lex executable")
IF(NOT LEX_EXECUTABLE)
FIND_PROGRAM(LEX_EXECUTABLE lex DOC "path to the lex executable")
ENDIF(NOT LEX_EXECUTABLE)
MARK_AS_ADVANCED(LEX_EXECUTABLE)
FIND_LIBRARY(FL_LIBRARY NAMES fl
DOC "path to the fl library")
MARK_AS_ADVANCED(FL_LIBRARY)
SET(LEX_LIBRARIES ${FL_LIBRARY})
IF(LEX_EXECUTABLE)
#============================================================
# LEX_TARGET (public macro)
#============================================================
#
MACRO(LEX_TARGET Name Input Output)
SET(LEX_TARGET_usage "LEX_TARGET(<Name> <Input> <Output> [COMPILE_FLAGS <string>]")
IF(${ARGC} GREATER 3)
IF(${ARGC} EQUAL 5)
IF("${ARGV3}" STREQUAL "COMPILE_FLAGS")
SET(LEX_EXECUTABLE_opts "${ARGV4}")
SEPARATE_ARGUMENTS(LEX_EXECUTABLE_opts)
ELSE()
MESSAGE(SEND_ERROR ${LEX_TARGET_usage})
ENDIF()
ELSE()
MESSAGE(SEND_ERROR ${LEX_TARGET_usage})
ENDIF()
ENDIF()
ADD_CUSTOM_COMMAND(OUTPUT ${Output}
COMMAND ${LEX_EXECUTABLE}
ARGS ${LEX_EXECUTABLE_opts} -o${Output} ${Input}
DEPENDS ${Input}
COMMENT "[LEX][${Name}] Building scanner with ${LEX_EXECUTABLE}"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
SET(LEX_${Name}_DEFINED TRUE)
SET(LEX_${Name}_OUTPUTS ${Output})
SET(LEX_${Name}_INPUT ${Input})
SET(LEX_${Name}_COMPILE_FLAGS ${LEX_EXECUTABLE_opts})
ENDMACRO(LEX_TARGET)
#============================================================
#============================================================
# ADD_LEX_YACC_DEPENDENCY (public macro)
#============================================================
#
MACRO(ADD_LEX_YACC_DEPENDENCY FlexTarget YaccTarget)
IF(NOT LEX_${FlexTarget}_OUTPUTS)
MESSAGE(SEND_ERROR "Flex target `${FlexTarget}' does not exists.")
ENDIF()
IF(NOT YACC_${YaccTarget}_OUTPUT_HEADER)
MESSAGE(SEND_ERROR "Yacc target `${YaccTarget}' does not exists.")
ENDIF()
SET_SOURCE_FILES_PROPERTIES(${LEX_${FlexTarget}_OUTPUTS}
PROPERTIES OBJECT_DEPENDS ${YACC_${YaccTarget}_OUTPUT_HEADER})
ENDMACRO(ADD_LEX_YACC_DEPENDENCY)
#============================================================
#Need to run a test lex file to determine if YYTEXT_POINTER needs
#to be defined
EXEC_PROGRAM(${LEX_EXECUTABLE} ARGS ${CMAKE_SOURCE_DIR}/misc/CMake/test_srcs/lex_test.l -o ${CMAKE_BINARY_DIR}/CMakeTmp/lex_test.c RETURN_VALUE _retval OUTPUT_VARIABLE _lexOut)
INCLUDE (CheckCFileRuns)
SET(FILE_RUN_DEFINITIONS "-DYYTEXT_POINTER=1")
CHECK_C_FILE_RUNS(${CMAKE_CURRENT_SOURCE_DIR}/CMake/test_srcs/sys_wait_test.c YYTEXT_POINTER)
SET(FILE_RUN_DEFINITIONS)
IF(CONFIG_H_FILE)
FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine YYTEXT_POINTER 1\n")
ENDIF(CONFIG_H_FILE)
ENDIF(LEX_EXECUTABLE)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LEX DEFAULT_MSG LEX_EXECUTABLE)
# FindLEX.cmake ends here

165
CMake/FindYACC.cmake Normal file
View file

@ -0,0 +1,165 @@
# - Find yacc executable and provides macros to generate custom build rules
# The module defines the following variables
#
# YACC_EXECUTABLE - path to the yacc program
# YACC_FOUND - true if the program was found
#
# If yacc is found, the module defines the macros:
# YACC_TARGET(<Name> <YaccInput> <CodeOutput> [VERBOSE <file>]
# [COMPILE_FLAGS <string>])
# which will create a custom rule to generate a parser. <YaccInput> is
# the path to a yacc file. <CodeOutput> is the name of the source file
# generated by yacc. A header file is also be generated, and contains
# the token list. If COMPILE_FLAGS option is specified, the next
# parameter is added in the yacc command line. if VERBOSE option is
# specified, <file> is created and contains verbose descriptions of the
# grammar and parser. The macro defines a set of variables:
# YACC_${Name}_DEFINED - true is the macro ran successfully
# YACC_${Name}_INPUT - The input source file, an alias for <YaccInput>
# YACC_${Name}_OUTPUT_SOURCE - The source file generated by yacc
# YACC_${Name}_OUTPUT_HEADER - The header file generated by yacc
# YACC_${Name}_OUTPUTS - The sources files generated by yacc
# YACC_${Name}_COMPILE_FLAGS - Options used in the yacc command line
#
# ====================================================================
# Example:
#
# find_package(YACC)
# YACC_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp)
# add_executable(Foo main.cpp ${YACC_MyParser_OUTPUTS})
# ====================================================================
#
#=============================================================================
# Copyright 2010 United States Government as represented by
# the U.S. Army Research Laboratory.
# Copyright 2009 Kitware, Inc.
# Copyright 2006 Tristan Carel
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# * 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.
#
# * The names of the authors may not 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
# HOLDER 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.
#=============================================================================
FIND_PROGRAM(YACC_EXECUTABLE bison DOC "path to the yacc executable")
IF(NOT YACC_EXECUTABLE)
FIND_PROGRAM(YACC_EXECUTABLE yacc DOC "path to the yacc executable")
ENDIF(NOT YACC_EXECUTABLE)
MARK_AS_ADVANCED(YACC_EXECUTABLE)
IF(YACC_EXECUTABLE)
# internal macro
MACRO(YACC_TARGET_option_verbose Name YaccOutput filename)
LIST(APPEND YACC_TARGET_cmdopt "--verbose")
GET_FILENAME_COMPONENT(YACC_TARGET_output_path "${YaccOutput}" PATH)
GET_FILENAME_COMPONENT(YACC_TARGET_output_name "${YaccOutput}" NAME_WE)
ADD_CUSTOM_COMMAND(OUTPUT ${filename}
COMMAND ${CMAKE_COMMAND}
ARGS -E copy
"${YACC_TARGET_output_path}/${YACC_TARGET_output_name}.output"
"${filename}"
DEPENDS
"${YACC_TARGET_output_path}/${YACC_TARGET_output_name}.output"
COMMENT "[YACC][${Name}] Copying yacc verbose table to ${filename}"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
SET(YACC_${Name}_VERBOSE_FILE ${filename})
LIST(APPEND YACC_TARGET_extraoutputs
"${YACC_TARGET_output_path}/${YACC_TARGET_output_name}.output")
ENDMACRO(YACC_TARGET_option_verbose)
# internal macro
MACRO(YACC_TARGET_option_extraopts Options)
SET(YACC_TARGET_extraopts "${Options}")
SEPARATE_ARGUMENTS(YACC_TARGET_extraopts)
LIST(APPEND YACC_TARGET_cmdopt ${YACC_TARGET_extraopts})
ENDMACRO(YACC_TARGET_option_extraopts)
#============================================================
# YACC_TARGET (public macro)
#============================================================
#
MACRO(YACC_TARGET Name YaccInput YaccOutput)
SET(YACC_TARGET_output_header "")
SET(YACC_TARGET_command_opt "")
SET(YACC_TARGET_outputs "${YaccOutput}")
IF(NOT ${ARGC} EQUAL 3 AND NOT ${ARGC} EQUAL 5 AND NOT ${ARGC} EQUAL 7)
MESSAGE(SEND_ERROR "Usage")
ELSE()
# Parsing parameters
IF(${ARGC} GREATER 5 OR ${ARGC} EQUAL 5)
IF("${ARGV3}" STREQUAL "VERBOSE")
YACC_TARGET_option_verbose(${Name} ${YaccOutput} "${ARGV4}")
ENDIF()
IF("${ARGV3}" STREQUAL "COMPILE_FLAGS")
YACC_TARGET_option_extraopts("${ARGV4}")
ENDIF()
ENDIF()
IF(${ARGC} EQUAL 7)
IF("${ARGV5}" STREQUAL "VERBOSE")
YACC_TARGET_option_verbose(${Name} ${YaccOutput} "${ARGV6}")
ENDIF()
IF("${ARGV5}" STREQUAL "COMPILE_FLAGS")
YACC_TARGET_option_extraopts("${ARGV6}")
ENDIF()
ENDIF()
# Header's name generated by yacc (see option -d)
LIST(APPEND YACC_TARGET_cmdopt "-d")
STRING(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\2" _fileext "${ARGV2}")
STRING(REPLACE "c" "h" _fileext ${_fileext})
STRING(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1${_fileext}"
YACC_${Name}_OUTPUT_HEADER "${ARGV2}")
LIST(APPEND YACC_TARGET_outputs "${YACC_${Name}_OUTPUT_HEADER}")
ADD_CUSTOM_COMMAND(OUTPUT ${YACC_TARGET_outputs}
${YACC_TARGET_extraoutputs}
COMMAND ${YACC_EXECUTABLE}
ARGS ${YACC_TARGET_cmdopt} -o ${ARGV2} ${ARGV1}
DEPENDS ${ARGV1}
COMMENT "[YACC][${Name}] Building parser with ${YACC_EXECUTABLE}"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
# define target variables
SET(YACC_${Name}_DEFINED TRUE)
SET(YACC_${Name}_INPUT ${ARGV1})
SET(YACC_${Name}_OUTPUTS ${YACC_TARGET_outputs})
SET(YACC_${Name}_COMPILE_FLAGS ${YACC_TARGET_cmdopt})
SET(YACC_${Name}_OUTPUT_SOURCE "${YaccOutput}")
ENDIF(NOT ${ARGC} EQUAL 3 AND NOT ${ARGC} EQUAL 5 AND NOT ${ARGC} EQUAL 7)
ENDMACRO(YACC_TARGET)
#
#============================================================
ENDIF(YACC_EXECUTABLE)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(YACC DEFAULT_MSG YACC_EXECUTABLE)
# FindYACC.cmake ends here

75
CMake/SCL_Utils.cmake Normal file
View file

@ -0,0 +1,75 @@
# Will need windows logic someday, even though it doesn't work yet, so go ahead
# and add the DLL_DEFINE macro
MACRO(DLL_DEFINE libname)
IF(MSVC)
STRING(REGEX REPLACE "lib" "" LOWERCORE "${libname}")
STRING(TOUPPER ${LOWERCORE} UPPER_CORE)
add_definitions("-D${UPPER_CORE}_EXPORT_DLL")
ENDIF(MSVC)
ENDMACRO()
MACRO(SCL_ADDEXEC execname srcs libs)
STRING(REGEX REPLACE " " ";" srcslist "${srcs}")
STRING(REGEX REPLACE " " ";" libslist "${libs}")
add_executable(${execname} ${srcslist})
target_link_libraries(${execname} ${libslist})
INSTALL(TARGETS ${execname} DESTINATION bin)
# Enable extra compiler flags if local executables and/or global options dictate
SET(LOCAL_COMPILE_FLAGS "")
FOREACH(extraarg ${ARGN})
IF(${extraarg} MATCHES "STRICT" AND BRLCAD-ENABLE_STRICT)
SET(LOCAL_COMPILE_FLAGS "${LOCAL_COMPILE_FLAGS} ${STRICT_FLAGS}")
ENDIF(${extraarg} MATCHES "STRICT" AND BRLCAD-ENABLE_STRICT)
ENDFOREACH(extraarg ${ARGN})
IF(LOCAL_COMPILE_FLAGS)
SET_TARGET_PROPERTIES(${execname} PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
ENDIF(LOCAL_COMPILE_FLAGS)
ENDMACRO(SCL_ADDEXEC execname srcs libs)
MACRO(SCL_ADDLIB libname srcs libs)
STRING(REGEX REPLACE " " ";" srcslist "${srcs}")
STRING(REGEX REPLACE " " ";" libslist1 "${libs}")
STRING(REGEX REPLACE "-framework;" "-framework " libslist "${libslist1}")
DLL_DEFINE(${libname})
IF(BUILD_SHARED_LIBS)
add_library(${libname} SHARED ${srcslist})
if(NOT ${libs} MATCHES "NONE")
target_link_libraries(${libname} ${libslist})
endif(NOT ${libs} MATCHES "NONE")
SET_TARGET_PROPERTIES(${libname} PROPERTIES VERSION ${SCL_VERSION_MAJOR}.${SCL_VERSION_MINOR} SOVERSION ${SCL_VERSION_MAJOR} )
INSTALL(TARGETS ${libname} DESTINATION lib)
ENDIF(BUILD_SHARED_LIBS)
IF(BUILD_STATIC_LIBS AND NOT MSVC)
add_library(${libname}-static STATIC ${srcslist})
if(NOT ${libs} MATCHES "NONE")
target_link_libraries(${libname}-static ${libslist})
endif(NOT ${libs} MATCHES "NONE")
IF(NOT WIN32)
SET_TARGET_PROPERTIES(${libname}-static PROPERTIES OUTPUT_NAME "${libname}")
ENDIF(NOT WIN32)
IF(WIN32)
# We need the lib prefix on win32, so add it even if our add_library
# wrapper function has removed it due to the target name - see
# http://www.cmake.org/Wiki/CMake_FAQ#How_do_I_make_my_shared_and_static_libraries_have_the_same_root_name.2C_but_different_suffixes.3F
SET_TARGET_PROPERTIES(${libname}-static PROPERTIES PREFIX "lib")
ENDIF(WIN32)
INSTALL(TARGETS ${libname}-static DESTINATION lib)
ENDIF(BUILD_STATIC_LIBS AND NOT MSVC)
# Enable extra compiler flags if local libraries and/or global options dictate
SET(LOCAL_COMPILE_FLAGS "")
FOREACH(extraarg ${ARGN})
IF(${extraarg} MATCHES "STRICT" AND BRLCAD-ENABLE_STRICT)
SET(LOCAL_COMPILE_FLAGS "${LOCAL_COMPILE_FLAGS} ${STRICT_FLAGS}")
ENDIF(${extraarg} MATCHES "STRICT" AND BRLCAD-ENABLE_STRICT)
ENDFOREACH(extraarg ${ARGN})
IF(LOCAL_COMPILE_FLAGS)
IF(BUILD_SHARED_LIBS)
SET_TARGET_PROPERTIES(${libname} PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
ENDIF(BUILD_SHARED_LIBS)
IF(BUILD_STATIC_LIBS AND NOT MSVC)
SET_TARGET_PROPERTIES(${libname}-static PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
ENDIF(BUILD_STATIC_LIBS AND NOT MSVC)
ENDIF(LOCAL_COMPILE_FLAGS)
ENDMACRO(SCL_ADDLIB libname srcs libs)

View file

@ -0,0 +1,19 @@
#include <sys/types.h>
#include <sys/wait.h>
#ifndef WEXITSTATUS
# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
#endif
#ifndef WIFEXITED
# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
#endif
int
main ()
{
int s;
wait (&s);
s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
;
return 0;
}

222
CMakeLists.txt Normal file
View file

@ -0,0 +1,222 @@
# C M A K E L I S T S . T X T
# SCL
#
# Copyright (c) 2010 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.
# *******************************************************************
# *** BRL-CAD's CMakeLists.txt ***
# *******************************************************************
# This file contains the top level CMakeLists.txt logic for the
# BRL-CAD software package.
# Minimum required version of CMake
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
IF(COMMAND CMAKE_POLICY)
CMAKE_POLICY(SET CMP0003 NEW)
ENDIF(COMMAND CMAKE_POLICY)
# set CMake project name
PROJECT(SCL)
# build shared libs by default
OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON)
# build static libs by default
OPTION(BUILD_STATIC_LIBS "Build static libraries" ON)
# Set version
SET(SCL_VERSION_MAJOR "3")
SET(SCL_VERSION_MINOR "2")
SET(SCL_VERSION_PATCH "0")
SET(SCL_VERSION "${SCL_VERSION_MAJOR}.${SCL_VERSION_MINOR}.${SCL_VERSION_PATCH}")
# CMake derives much of its functionality from modules, typically
# stored in one directory - let CMake know where to find them.
SET(SCL_CMAKE_DIR "${SCL_SOURCE_DIR}/CMake")
SET(CMAKE_MODULE_PATH "${SCL_CMAKE_DIR};${CMAKE_MODULE_PATH}")
INCLUDE(${SCL_CMAKE_DIR}/SCL_Utils.cmake)
# Save the current LC_ALL, LC_MESSAGES, and LANG environment variables and set them
# to "C" so things like date output are as expected
SET(_orig_lc_all $ENV{LC_ALL})
SET(_orig_lc_messages $ENV{LC_MESSAGES})
SET(_orig_lang $ENV{LANG})
IF(_orig_lc_all)
SET(ENV{LC_ALL} C)
ENDIF(_orig_lc_all)
IF(_orig_lc_messages)
SET(ENV{LC_MESSAGES} C)
ENDIF(_orig_lc_messages)
IF(_orig_lang)
SET(ENV{LANG} C)
ENDIF(_orig_lang)
# For NFS volumes, to ensure proper file creation.
IF(NOT WIN32)
IF(NOT UMASK)
EXEC_PROGRAM(umask ARGS 022 OUTPUT_VARIABLE exec_out)
ELSE(NOT UMASK)
EXEC_PROGRAM(umask ARGS ${UMASK} OUTPUT_VARIABLE exec_out)
ENDIF(NOT UMASK)
ENDIF(NOT WIN32)
#---------------------------------------------------------------------
# The following logic is what allows binaries to run successfully in
# the build directory AND install directory. Thanks to plplot for
# identifying the necessity of setting CMAKE_INSTALL_NAME_DIR on OSX.
# use, i.e. don't skip the full RPATH for the build tree
SET(CMAKE_SKIP_BUILD_RPATH FALSE)
# when building, don't use the install RPATH already
# (but later on when installing)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
# the RPATH/INSTALL_NAME_DIR to be used when installing
if (NOT APPLE)
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
endif(NOT APPLE)
SET(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
# add the automatically determined parts of the RPATH which point to
# directories outside the build tree to the install RPATH
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
#-----------------------------------------------------------------------------
# Output directories.
IF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
IF(WIN32)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all libraries.")
ELSE(WIN32)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
ENDIF(WIN32)
ENDIF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
IF(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
ENDIF(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
IF(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
ENDIF(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
FOREACH(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
STRING(TOUPPER "${CFG_TYPE}" CFG_TYPE)
IF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
IF(WIN32)
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SCL_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all libraries.")
ELSE(WIN32)
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SCL_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
ENDIF(WIN32)
ENDIF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
IF(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SCL_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
ENDIF(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
IF(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SCL_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
ENDIF(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
ENDFOREACH()
#-----------------------------------------------------------------------------
# Configure install locations.
# The location in which to install BRLCAD. Need a good Debug location
# for Windows. Only do this if CMAKE_INSTALL_PREFIX hasn't been set
# already, to try and allow parent builds (if any) some control.
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
MESSAGE("HAVE_DEFAULT_PREFIX")
IF(NOT WIN32)
IF ("${CMAKE_BUILD_TYPE}" MATCHES "Release")
SET(CMAKE_INSTALL_PREFIX "/usr")
ELSEIF ("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
MESSAGE("setting debug output dir")
SET(CMAKE_INSTALL_PREFIX "${SCL_SOURCE_DIR}/../scl-install")
ELSE("${CMAKE_BUILD_TYPE}" MATCHES "Release")
SET(CMAKE_INSTALL_PREFIX "/usr/local")
ENDIF ("${CMAKE_BUILD_TYPE}" MATCHES "Release")
ENDIF(NOT WIN32)
SET(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE STRING "SCL install prefix" FORCE)
SET(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT 0)
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
SET(BRLCAD_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE STRING "SCL install prefix")
OPTION(SCL-BUILD_EXPRESS_ONLY "Only build express parser." OFF)
MARK_AS_ADVANCED(SCL-BUILD_EXPRESS_ONLY)
# Take the scl config file template and copy it to the build directory so CMake
# scripts can append to it if need be
configure_file(${SCL_SOURCE_DIR}/include/scl_cf_cmake.h.in ${SCL_BINARY_DIR}/include/scl_cf.h.in COPYONLY)
SET(CONFIG_H_FILE ${SCL_SOURCE_DIR}/include/scl_cf_cmake.h.in)
INCLUDE(CheckLibraryExists)
INCLUDE(CheckIncludeFile)
INCLUDE(CheckFunctionExists)
INCLUDE(CheckTypeSize)
INCLUDE(${SCL_CMAKE_DIR}/FindLEX.cmake)
INCLUDE(${SCL_CMAKE_DIR}/FindYACC.cmake)
CHECK_INCLUDE_FILE(ndir.h HAVE_NDIR_H)
CHECK_INCLUDE_FILE(stdarg.h HAVE_STDARG_H)
CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
CHECK_INCLUDE_FILE(sysent.h HAVE_SYSENT_H)
CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
CHECK_FUNCTION_EXISTS(abs HAVE_ABS)
CHECK_FUNCTION_EXISTS(memcpy HAVE_MEMCPY)
CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE)
CHECK_TYPE_SIZE("ssize_t" SSIZE_T)
# Now that all the tests are done, configure the scl_cf.h file:
configure_file(${SCL_BINARY_DIR}/include/scl_cf.h.in ${SCL_BINARY_DIR}/include/scl_cf.h)
add_definitions(
-DHAVE_CONFIG_H
)
include_directories(
${SCL_SOURCE_DIR}/include
${SCL_BINARY_DIR}/include
)
ADD_SUBDIRECTORY(src/express)
ADD_SUBDIRECTORY(src/exppp)
ADD_SUBDIRECTORY(src/fedex_plus)
ADD_SUBDIRECTORY(src/clstepcore)
ADD_SUBDIRECTORY(src/cleditor)
ADD_SUBDIRECTORY(src/cldai)
ADD_SUBDIRECTORY(src/clutils)
ADD_SUBDIRECTORY(include)
ADD_SUBDIRECTORY(data)
ADD_SUBDIRECTORY(doc)

View file

@ -80,13 +80,10 @@ dnl minimum version of autoconf required. should coincide with
dnl setting in autogen.sh script.
AC_PREREQ(2.52)
dnl See HACKING for details on how to properly update the version
define([MAJOR_VERSION], [patsubst(esyscmd([cat include/conf/MAJOR]), [
])])
define([MINOR_VERSION], [patsubst(esyscmd([cat include/conf/MINOR]), [
])])
define([PATCH_VERSION], [patsubst(esyscmd([cat include/conf/PATCH]), [
])])
define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
define([MAJOR_VERSION], [3])
define([MINOR_VERSION], [2])
define([PATCH_VERSION], [0])
define([SCL_VERSION], [patsubst([MAJOR_VERSION.MINOR_VERSION.PATCH_VERSION], [
])])
@ -187,7 +184,7 @@ BC_SCL_DATA
AM_INIT_AUTOMAKE([1.6 dist-zip dist-bzip2])
# write out all of our definitions to this header
AM_CONFIG_HEADER([include/scl_config.h])
AM_CONFIG_HEADER([include/scl_cf.h])
# automatically enable and load our configure cache file if available
BC_CONFIG_CACHE([config.cache.${host_os}.${ac_hostname}])
@ -788,7 +785,6 @@ AC_CONFIG_FILES([
m4/Makefile
misc/Makefile
include/Makefile
include/conf/Makefile
include/express/Makefile
include/exppp/Makefile
doc/Makefile

35
data/CMakeLists.txt Normal file
View file

@ -0,0 +1,35 @@
SET(SCL_DATA ${${CMAKE_PROJECT_NAME}_INSTALL_DATA_DIR})
SET(ap203_data
ap203/203wseds.exp
ap203/cube1.p21
ap203/cube2.p21
ap203/g_r_assembly1.p21
ap203/gasket1.p21
ap203/gasket2.p21
ap203/gasket3.p21
ap203/hex_prism1.p21
ap203/rod_aspect1.p21
ap203/star1.p21
)
INSTALL(FILES ${ap203_data} DESTINATION ${SCL_DATA}/data/ap203)
SET(ap227_data
ap227/ap227.exp
ap227/mitre.p21
ap227/mitre.step.txt
)
INSTALL(FILES ${ap227_data} DESTINATION ${SCL_DATA}/data/ap227)
SET(step_example_data
example/example.exp
)
INSTALL(FILES ${step_example_data} DESTINATION ${SCL_DATA}/data/example)
SET(step_datafiles
pdmnet.exp
select.exp
)
INSTALL(FILES ${step_datafiles} DESTINATION ${SCL_DATA}/data)

7
doc/CMakeLists.txt Normal file
View file

@ -0,0 +1,7 @@
SET(scl_MANS
man/man1/dataprobe.1
man/man1/fedex.1
man/man1/fedex_plus.1
man/man1/mkProbe.1
)
INSTALL(FILES ${scl_MANS} DESTINATION ${${CMAKE_PROJECT_NAME}_INSTALL_MAN_DIR}/man1)

36
include/CMakeLists.txt Normal file
View file

@ -0,0 +1,36 @@
SET(express_HDRS
express/alg.h
express/basic.h
express/caseitem.h
express/de_end.h
express/decstart.h
express/defstart.h
express/dict.h
express/entity.h
express/error.h
express/expbasic.h
express/expr.h
express/express.h
express/hash.h
express/lexact.h
express/linklist.h
express/memory.h
express/object.h
express/resolve.h
express/schema.h
express/scope.h
express/stmt.h
express/symbol.h
express/type.h
express/variable.h
)
install(FILES ${express_HDRS} DESTINATION include/express)
SET(exppp_HDRS
exppp/exppp.h
)
install(FILES ${exppp_HDRS} DESTINATION include/exppp)
SET(SCL_noinst_HEADERS
sclprefixes.h
)

View file

@ -1,6 +1,5 @@
SUBDIRS = \
conf \
express \
exppp

View file

@ -1 +0,0 @@
3

View file

@ -1 +0,0 @@
2

View file

@ -1,52 +0,0 @@
COUNT: DATE HOST PATH USER
test -f $@ && expr `cat COUNT` + 1 > $@ || echo "1" > $@
DATE: HOST PATH USER $(top_builddir)/include/scl_config.h
echo "\"`LANG=C date -R 2>/dev/null || date +'%a, %d %b %Y %H:%M:%S %z' 2>/dev/null || date`\"" > $@
HOST: $(top_builddir)/include/scl_config.h
echo "\"`hostname`\"" > $@
PATH: $(top_builddir)/include/scl_config.h
echo "\"$(DESTDIR)$(prefix)\"" > $@
USER: $(top_builddir)/include/scl_config.h
echo "\"`whoami`\"" > $@
# updated every time make is invoked for timing the compile
TS:
@echo "\"`LANG=C date -R 2>/dev/null || date +'%a, %d %b %Y %H:%M:%S %z' 2>/dev/null || date`\"" > $@
@cat TS
.PHONY: TS
# this causes them to be dependencies on the 'all' target
BUILT_SOURCES = \
COUNT \
DATE \
HOST \
PATH \
TS \
USER
EXTRA_DIST = \
$(BUILT_SOURCES) \
MAJOR \
MINOR \
PATCH
# remove all except COUNT
CLEANFILES = \
DATE \
HOST \
PATH \
TS \
USER
DISTCLEANFILES = \
$(CLEANFILES) \
COUNT \
TS
include $(top_srcdir)/misc/Makefile.defs

View file

@ -1 +0,0 @@
0

14
include/scl_cf_cmake.h.in Normal file
View file

@ -0,0 +1,14 @@
/**** Define statements for CMake ****/
#cmakedefine HAVE_NDIR_H 1
#cmakedefine HAVE_STDARG_H 1
#cmakedefine HAVE_SYS_STAT_H 1
#cmakedefine HAVE_SYSENT_H 1
#cmakedefine HAVE_UNISTD_H 1
#cmakedefine HAVE_ABS 1
#cmakedefine HAVE_MEMCPY 1
#cmakedefine HAVE_MEMMOVE 1
#cmakedefine HAVE_SSIZE_T 1
#cmakedefine YYTEXT_POINTER 1
#cmakedefine YYTEXT_POINTER 1
#cmakedefine YYTEXT_POINTER 1
#cmakedefine YYTEXT_POINTER 1

39
src/cldai/CMakeLists.txt Normal file
View file

@ -0,0 +1,39 @@
set(LIBSTEPDAI_SRCS
sdaiApplication_instance_set.cc
sdaiSession_instance.cc
sdaiObject.cc
sdaiDaObject.cc
sdaiEntity_extent.cc
sdaiEntity_extent_set.cc
sdaiModel_contents.cc
sdaiModel_contents_list.cc
)
SET(LIBSTEPDAI_PRIVATE_HDRS
ErrorMap.hh
ErrorRpt.hh
impconv.hh
imptypes.hh
sdaiApplication_instance_set.h
sdaiDaObject.h
sdaiEntity_extent.h
sdaiEntity_extent_set.h
sdaiModel_contents.h
sdaiModel_contents_list.h
sdaiObject.h
sdaiSession_instance.h
StrUtil.hh
)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${SCL_SOURCE_DIR}/src/clstepcore
${SCL_SOURCE_DIR}/src/clutils
)
add_definitions(
-DHAVE_CONFIG_H
)
SCL_ADDLIB(stepdai "${LIBSTEPDAI_SRCS}" "steputils stepcore")

View file

@ -0,0 +1,43 @@
set(LIBSTEPEDITOR_SRCS
STEPfile.cc
STEPfile.inline.cc
cmdmgr.cc
dispnode.cc
dispnodelist.cc
instmgr.cc
mgrnode.cc
mgrnodearray.cc
mgrnodelist.cc
needFunc.cc
s_HEADER_SCHEMA.cc
s_HEADER_SCHEMA.init.cc
)
SET(LIBSTEPEDITOR_PRIVATE_HDRS
STEPfile.h
cmdmgr.h
dispnode.h
dispnodelist.h
editordefines.h
instmgr.h
mgrnode.h
mgrnodearray.h
mgrnodelist.h
needFunc.h
s_HEADER_SCHEMA.h
seeinfodefault.h
)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${SCL_SOURCE_DIR}/src/cldai
${SCL_SOURCE_DIR}/src/clstepcore
${SCL_SOURCE_DIR}/src/clutils
)
add_definitions(
-DHAVE_CONFIG_H
)
SCL_ADDLIB(stepeditor "${LIBSTEPEDITOR_SRCS}" stepcore)

View file

@ -25,7 +25,7 @@ void DisplayNodeList::Remove(GenericNode *node)
{
GenNodeList::Remove(node);
// DON'T DO THIS ((DisplayNode *)node)->displayState = noMapState;
};
}
// deletes node from its previous list & appends
// actually it puts it at the front of the list.

View file

@ -41,7 +41,7 @@ void MgrNode::Remove()
// cout << "MgrNode::this : '" << this << "'\n";
GenericNode::Remove();
// DON'T DO THIS!! currState = noStateSE;
};
}
// searches current list for fileId
MgrNode *MgrNode::StateFindFileId(int fileId)

View file

@ -32,7 +32,7 @@ void MgrNodeList::Remove(GenericNode *node)
// cout << "MgrNodeList::Remove()\n";
GenNodeList::Remove(node);
// DON'T DO THIS ((MgrNode *)node)->currState = noStateSE;
};
}
// deletes node from its previous list & appends...
// actually it puts it at the front of the list.

View file

@ -0,0 +1,70 @@
set(LIBSTEPCORE_SRCS
sdaiApplication_instance.cc
STEPcomplex.cc
STEPattribute.cc
STEPattribute.inline.cc
sdai.cc
sdaiEnum.cc
sdaiString.cc
sdaiSelect.cc
sdaiBinary.cc
STEPaggregate.cc
STEPundefined.cc
STEPattributeList.cc
SingleLinkList.cc
SingleLinkList.inline.cc
Registry.inline.cc
ExpDict.cc
ExpDict.inline.cc
read_func.cc
collect.cc
complexlist.cc
entlist.cc
multlist.cc
orlist.cc
entnode.cc
non-ors.cc
match-ors.cc
trynext.cc
print.cc
)
SET(LIBSTEPCORE_PRIVATE_HDRS
baseType.h
complexSupport.h
dictdefs.h
ExpDict.h
read_func.h
Registry.h
scl_osschema.h
sdaiApplication_instance.h
sdaiBinary.h
sdaiEnum.h
sdai.h
sdaiSelect.h
sdaiString.h
Select.h
SingleLinkList.h
STEPaggregate.h
STEPattribute.h
STEPattributeList.h
STEPcomplex.h
STEPundefined.h
)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${SCL_SOURCE_DIR}/src/cldai
${SCL_SOURCE_DIR}/src/cleditor
${SCL_SOURCE_DIR}/src/clutils
)
add_definitions(
-DHAVE_CONFIG_H
)
SCL_ADDLIB(stepcore "${LIBSTEPCORE_SRCS}" "express steputils")
if(APPLE)
set_target_properties(stepcore PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
endif(APPLE)

View file

@ -11,6 +11,10 @@
*/
/* $Id: ExpDict.cc,v 3.0.1.7 1998/02/17 19:19:15 sauderd DP3.1 $ */
#ifdef HAVE_CONFIG_H
# include <scl_cf.h>
#endif
#include <memory.h>
#include <math.h>
#include <stdio.h>

View file

@ -483,12 +483,12 @@ GenericAggregate::ShallowCopy (const STEPaggregate& a)
GenericAggrNode::GenericAggrNode (const char *str)
{
value = str;
};
}
GenericAggrNode::GenericAggrNode (GenericAggrNode& gan)
{
value = gan.value;
};
}
GenericAggrNode::GenericAggrNode()
{

View file

@ -20,6 +20,10 @@
/* $Id: sdai.h,v 3.0.1.12 1997/11/05 22:52:58 sauderd DP3.1 $ */
#ifdef HAVE_CONFIG_H
# include <scl_cf.h>
#endif
extern const char *SCLversion;
#include <ctype.h>

View file

@ -0,0 +1,38 @@
set(LIBSTEPUTILS_SRCS
Str.cc
dirobj.cc
gennode.cc
gennodelist.cc
gennodearray.cc
scl_hash.cc
errordesc.cc
scl_string.cc
scl_char_str_list.cc
)
SET(LIBSTEPUTILS_PRIVATE_HDRS
dirobj.h
errordesc.h
gennodearray.h
gennode.h
gennodelist.h
scl_char_str_list.h
scldir.h
scl_hash.h
scl_string.h
stat.h
Str.h
str_list.h
)
include_directories(
${SCL_BINARY_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}
)
add_definitions(
-DHAVE_CONFIG_H
)
SCL_ADDLIB(steputils "${LIBSTEPUTILS_SRCS}" "")

View file

@ -43,7 +43,7 @@
#include <dirent.h>
#ifdef HAVE_CONFIG_H
# include <scl_config.h>
# include <scl_cf.h>
#endif
/* for getuid() */

View file

@ -12,6 +12,10 @@
/* $Id: gennodearray.cc,v 3.0.1.4 1997/11/05 22:33:48 sauderd DP3.1 $ */
#ifdef HAVE_CONFIG_H
# include <scl_cf.h>
#endif
#include <gennode.h>
#include <gennodelist.h>
#include <gennodearray.h>

View file

@ -54,8 +54,7 @@ GenNodeList::Remove(GenericNode *node)
node->next = 0;
node->prev = 0;
}
};
}
void GenNodeList::ClearEntries()
{
// if(debug_level >= PrintFunctionTrace)

View file

@ -1,5 +1,8 @@
///////////////////////////////////////////////////////////////////////////////
#ifdef HAVE_CONFIG_H
# include <scl_cf.h>
#endif
#include <memory.h>
#include <math.h>

23
src/exppp/CMakeLists.txt Normal file
View file

@ -0,0 +1,23 @@
set(LIBEXPPP_SOURCES
exppp.c
)
SET(EXPPP_SOURCES
${SCL_SOURCE_DIR}/src/express/fedex.c
exppp-main.c
)
include_directories(
${SCL_SOURCE_DIR}/include
${SCL_SOURCE_DIR}/include/exppp
)
add_definitions(
-DHAVE_CONFIG_H
)
SCL_ADDLIB(libexppp "${LIBEXPPP_SOURCES}" express)
set_target_properties(libexppp PROPERTIES PREFIX "")
SCL_ADDEXEC(exppp "${EXPPP_SOURCES}" "libexppp express")

View file

@ -0,0 +1,59 @@
YACC_TARGET(ExpParser expparse.y ${CMAKE_CURRENT_BINARY_DIR}/expparse.c)
LEX_TARGET(ExpScanner expscan.l ${CMAKE_CURRENT_BINARY_DIR}/expscan.c COMPILE_FLAGS "-l")
ADD_LEX_YACC_DEPENDENCY(ExpScanner ExpParser)
set(EXPRESS_SOURCES
${YACC_ExpParser_OUTPUTS}
${LEX_ExpScanner_OUTPUTS}
symbol.c
type.c
variable.c
expr.c
entity.c
caseitem.c
stmt.c
alg.c
scope.c
schema.c
resolve.c
lexact.c
linklist.c
error.c
dict.c
hash.c
memory.c
object.c
inithook.c
yyvars.c
express.c
)
SET(FEDEX_SOURCES
fedex.c
)
SET(SYMLINK_SOURCES
fedex.c
symlink.c
)
SET(EXPRESS_PRIVATE_HDRS
conf.h
exptoks.h
stack.h
)
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
add_definitions(
-DHAVE_CONFIG_H
)
SCL_ADDLIB(express "${EXPRESS_SOURCES}" "")
SCL_ADDEXEC(fedex "${FEDEX_SOURCES}" express)
SCL_ADDEXEC(symlink "${SYMLINK_SOURCES}" express)

View file

@ -0,0 +1,52 @@
set(FEDEX_COMMON_SRCS
classes_misc.c
${SCL_SOURCE_DIR}/src/express/fedex.c
)
set(fedex_os_SOURCES
${FEDEX_COMMON_SRCS}
fedex_os.c
)
set(fedex_idl_SOURCES
${FEDEX_COMMON_SRCS}
fedex_idl.c
)
set(fedex_plus_SOURCES
${FEDEX_COMMON_SRCS}
fedex_main.c
classes_wrapper.cc
classes.c
selects.c
multpass.c
collect.cc
complexlist.cc
entlist.cc
multlist.cc
orlist.cc
entnode.cc
expressbuild.cc
non-ors.cc
match-ors.cc
trynext.cc
write.cc
print.cc
)
include_directories(
${SCL_SOURCE_DIR}/include
${SCL_SOURCE_DIR}/include/exppp
${SCL_SOURCE_DIR}/include/express
)
add_definitions(
-DHAVE_CONFIG_H
)
SCL_ADDEXEC(fedex_os "${fedex_os_SOURCES}" "libexppp express")
SCL_ADDEXEC(fedex_idl "${fedex_idl_SOURCES}" "libexppp express")
SCL_ADDEXEC(fedex_plus "${fedex_plus_SOURCES}" "libexppp express")