#sudo apt install openjdk-8-jre
#sudo apt install openjfx libfastutil-java libslf4j-java libcommons-io-java libcontrolsfx-java libjaxb-java

#java -d64 -server  -XX:+AggressiveOpts  -XX:+UseFastAccessorMethods -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Xmx4g -jar bin/SpecOMS.jar

# java  -server -Xmx4g -jar bin/SpecOMS.jar
# cp ../java/cmd/* .
# cp /gorgone/pappso/versions_logiciels_pappso/deepprot/v0.0.4/PXD004732/java/params/* .
# java  -server -Xmx4g -jar bin/SpecOMS.jar -c 

# git --git-dir=../specoms_work/.git format-patch -k -1 --stdout <commit SHA> | git am -3 -k --directory=java

#git --git-dir=../specoms_work/.git format-patch -k -1 --stdout 3eaf077c83846ffb75be75f896a4c362e91ee928 | git am -3 -k --ignore-whitespace --directory=java --include=src 

find_package(Java)
include(UseJava)

SET(JAVA_FILES

    src/algorithms/bucketClustering/Bucket.java
    src/algorithms/bucketClustering/BucketClustering.java
    src/algorithms/fptree/builder/FPTBuilder.java
    src/algorithms/fptree/extractor/FPTExtractor.java
    src/algorithms/fptree/FPTAlgorithm.java
    src/algorithms/fptree/FPTree.java

    src/biodata/AminoAcidHandler.java
    src/biodata/Cleaver.java
    src/biodata/CompleteSpectrumModel.java
    src/biodata/Peak.java
    src/biodata/Peptide.java
    src/biodata/Protein.java
    src/biodata/Spectrum.java
    src/biodata/SpectrumShifter.java
    
    src/filters/AccuracyValuePeakDiscriminationFilter.java
    src/filters/Deisotoping.java
    src/filters/DynamicRangeFilter.java
    src/filters/FilterInterface.java
    src/filters/FilterWrapper.java
    src/filters/HighPass.java
    src/filters/LowFilter.java
    src/filters/ParentFilter.java
    src/filters/PeakListMapStorageInFile.java
    src/filters/UpFilter.java
    src/filters/WindowFilter.java
    
    src/mvc/Controller.java
    src/mvc/ControllerContent.java
    src/mvc/ControllerLeft.java
    src/mvc/ControllerTop.java
    src/mvc/DragResizer.java
    src/mvc/FieldSet.java
    src/mvc/LineChartMarkers.java
    src/mvc/ListPTM.java
    src/mvc/Main.java
    src/mvc/MainWrapper.java
    src/mvc/Model.java
    src/mvc/ResultsData.java
    src/mvc/ResultsFilters.java
    src/mvc/ResultsGraph.java
    src/mvc/View.java
    src/mvc/ViewAlerts.java
    src/mvc/ViewBot.java
    src/mvc/ViewContent.java
    src/mvc/ViewLeft.java
    src/mvc/ViewTooltips.java
    src/mvc/ViewTop.java
    
    src/proteo/AffixHandler.java
    src/proteo/Param.java
    src/proteo/Peptides.java
    src/proteo/Proteins.java
    src/proteo/Spectra.java
    
    src/tools/DataWriter.java
    src/tools/Match.java
    src/tools/Record.java
    src/tools/RecordHandler.java
)

set(CMAKE_JAVA_INCLUDE_PATH
    ${PROJECT_SOURCE_DIR}/java/lib/jmzreader-2.0.7-20190322.160431-1.jar
    /usr/share/java/fastutil.jar
    /usr/share/java/javafx-base.jar
    /usr/share/java/javafx-controls.jar
    /usr/share/java/javafx-swing.jar
    /usr/share/java/javafx-graphics.jar
    /usr/share/java/jaxb-api.jar
    /usr/share/java/javafx-swing.jar
    /usr/share/java/controlsfx.jar
)

configure_file (${CMAKE_SOURCE_DIR}/java/manifest.mf.cmake ${CMAKE_SOURCE_DIR}/java/manifest.mf)

add_jar(SpecOMS 
    SOURCES ${JAVA_FILES}  myStyle.css README.txt logging.properties LICENSE
    #ENTRY_POINT mvc.MainWrapper
    #${PROJECT_SOURCE_DIR}/java/src/myStyle.css
    #INCLUDE_JARS ${CMAKE_JAVA_INCLUDE_PATH}
    MANIFEST ${PROJECT_SOURCE_DIR}/java/manifest.mf
    OUTPUT_DIR ${PROJECT_BINARY_DIR}/bin
)
