configure_file (
  "${PROJECT_SOURCE_DIR}/JavaYacas/CVersion.java.in"
  "${CMAKE_CURRENT_BINARY_DIR}/CVersion.java"
  )

set (CMAKE_JAVA_INCLUDE_PATH ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/jyacas.dir/)

set (JYACAS_SRCS ${CMAKE_CURRENT_BINARY_DIR}/CVersion.java
         JavaYacas/net/sf/yacas/GraphicsPrimitives.java 
         JavaYacas/net/sf/yacas/SBox.java
         JavaYacas/net/sf/yacas/SBoxBuilder.java
         JavaYacas/net/sf/yacas/TeXParser.java
         JavaYacas/net/sf/yacas/FormulaViewApplet.java
         JavaYacas/net/sf/yacas/Grapher.java
         JavaYacas/net/sf/yacas/GrapherApplet.java
         JavaYacas/net/sf/yacas/StdFileOutput.java
         JavaYacas/net/sf/yacas/StdFileInput.java
         JavaYacas/net/sf/yacas/JarInputFile.java
         JavaYacas/net/sf/yacas/CachedStdFileInput.java
         JavaYacas/net/sf/yacas/InputStatus.java
         JavaYacas/net/sf/yacas/LispInput.java
         JavaYacas/net/sf/yacas/LispDefFile.java
         JavaYacas/net/sf/yacas/LispDefFiles.java
         JavaYacas/net/sf/yacas/InputDirectories.java
         JavaYacas/net/sf/yacas/LispOutput.java
         JavaYacas/net/sf/yacas/LispHashTable.java
         JavaYacas/net/sf/yacas/LispAssociatedHash.java
         JavaYacas/net/sf/yacas/LispGlobal.java
         JavaYacas/net/sf/yacas/LispGlobalVariable.java
         JavaYacas/net/sf/yacas/LispArgList.java
         JavaYacas/net/sf/yacas/GenericClass.java
         JavaYacas/net/sf/yacas/LispGenericClass.java
         JavaYacas/net/sf/yacas/ArrayClass.java
         JavaYacas/net/sf/yacas/LispInfixOperator.java
         JavaYacas/net/sf/yacas/LispPtr.java
         JavaYacas/net/sf/yacas/LispObject.java
         JavaYacas/net/sf/yacas/LispPrinter.java
         JavaYacas/net/sf/yacas/LispError.java
         JavaYacas/net/sf/yacas/LispTokenizer.java
         JavaYacas/net/sf/yacas/LispParser.java
         JavaYacas/net/sf/yacas/LispAtom.java
         JavaYacas/net/sf/yacas/LispNumber.java
         JavaYacas/net/sf/yacas/LispSubList.java
         JavaYacas/net/sf/yacas/LispStandard.java
         JavaYacas/net/sf/yacas/LispUserFunctions.java
         JavaYacas/net/sf/yacas/LispArityUserFunction.java
         JavaYacas/net/sf/yacas/BranchingUserFunction.java
         JavaYacas/net/sf/yacas/MacroUserFunction.java
         JavaYacas/net/sf/yacas/ListedMacroUserFunction.java
         JavaYacas/net/sf/yacas/ListedBranchingUserFunction.java
         JavaYacas/net/sf/yacas/LispMultiUserFunction.java
         JavaYacas/net/sf/yacas/StringInput.java
         JavaYacas/net/sf/yacas/StringOutput.java
         JavaYacas/net/sf/yacas/InfixParser.java
         JavaYacas/net/sf/yacas/ParsedObject.java
         JavaYacas/net/sf/yacas/LispEvaluatorBase.java
         JavaYacas/net/sf/yacas/BigNumber.java
         JavaYacas/net/sf/yacas/YacasEvaluator.java
         JavaYacas/net/sf/yacas/YacasEvalCaller.java
         JavaYacas/net/sf/yacas/YacasCoreCommands.java
         JavaYacas/net/sf/yacas/UserStackInformation.java
         JavaYacas/net/sf/yacas/BasicEvaluator.java
         JavaYacas/net/sf/yacas/EvalFuncBase.java
         JavaYacas/net/sf/yacas/LispOperators.java
         JavaYacas/net/sf/yacas/LispUserFunction.java
         JavaYacas/net/sf/yacas/LispPtrArray.java
         JavaYacas/net/sf/yacas/LispLocalFrame.java
         JavaYacas/net/sf/yacas/LispIterator.java
         JavaYacas/net/sf/yacas/InfixPrinter.java
         JavaYacas/net/sf/yacas/LispEnvironment.java
         JavaYacas/net/sf/yacas/MathCommands.java
         JavaYacas/net/sf/yacas/YacasPatternPredicateBase.java
         JavaYacas/net/sf/yacas/PatternClass.java
         JavaYacas/net/sf/yacas/CYacas.java
         JavaYacas/net/sf/yacas/YacasConsole.java
         JavaYacas/net/sf/yacas/ConsoleApplet.java
         JavaYacas/net/sf/yacas/CDataReader.java
         JavaYacas/net/sf/yacas/HintItem.java
         JavaYacas/net/sf/yacas/HintWindow.java
         JavaYacas/net/sf/yacas/Hints.java
         JavaYacas/net/sf/yacas/SelectSymbol.java
         JavaYacas/net/sf/yacas/TResult.java
         JavaYacas/net/sf/yacas/YacasInterpreter.java
         JavaYacas/net/sf/yacas/YacasParamMatcherBase.java
         JavaYacas/net/sf/yacas/MatchSubList.java
         JavaYacas/net/sf/yacas/MatchNumber.java
         JavaYacas/net/sf/yacas/MatchAtom.java
         JavaYacas/net/sf/yacas/MatchVariable.java
         JavaYacas/net/sf/yacas/TWord.java
         JavaYacas/net/sf/yacas/YacasGraphicsContext.java
         JavaYacas/net/sf/yacas/Article.java
         JavaYacas/net/sf/yacas/DatahubApplet.java
         JavaYacas/net/sf/yacas/XmlTokenizer.java
         JavaYacas/net/sf/yacas/SubstBehaviourBase.java
         JavaYacas/net/sf/yacas/SubstBehaviour.java
         JavaYacas/net/sf/yacas/LocalSymbolBehaviour.java
         JavaYacas/net/sf/yacas/BackQuoteBehaviour.java
         JavaYacas/net/sf/yacas/YacasException.java)

add_jar (jyacas ${JYACAS_SRCS} ENTRY_POINT net/sf/yacas/YacasConsole VERSION ${YACAS_VERSION})

get_target_property(JYACAS_JAR_FILE jyacas JAR_FILE)

add_custom_command(TARGET jyacas POST_BUILD COMMAND ${Java_JAR_EXECUTABLE} -uf ${JYACAS_JAR_FILE} scripts/corefunctions.ys scripts/packages.ys)
add_custom_command(TARGET jyacas POST_BUILD COMMAND ${Java_JAR_EXECUTABLE} -uf ${JYACAS_JAR_FILE} ${YACAS_STATIC_SCRIPTS} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
