Commit 510d78dc authored by Teodora Szasz's avatar Teodora Szasz
Browse files

Working TGMM for Linux with correction of the labelType error and the MaxNumLabels error

parents
COPYRIGHT
This code was developed by Fernando Amat from January 2011 to January 2014 while
at the Janelia Farm Research Campus of the Howard Hughes Medical Institute. It is
released under the following copyright notice that applies to all files:
/*****************************************************************************************\
* *
* Copyright (c) January, 2011 Dr. Fernando Amat and Howard Hughes Medical Institute *
* ("HHMI") *
* *
* This software is provided and licensed on the following terms. By downloading, *
* using and/or copying the software, you agree that you have read, understood, and *
* will comply with these terms. *
* *
* 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 name of the Howard Hughes Medical Institute nor the names of its *
* contributors may be used to endorse or promote products derived from this *
* software without specific prior written permission. *
* 4. Anyone incorporating the software or any of its components into a commercial *
* product must notify the authors of this use. *
* *
* For use of this software and documentation for purposes other than those listed above, *
* contact Dr. Fernando Amat at: *
* *
* Janelia Farm Research Campus *
* 19700 Helix Drive *
* Ashburn, VA 20147-2408 *
* *
* Email: amatf...@AT@...janelia.hhmi.org (substitute ...@AT@... by @) *
* *
* For any issues regarding HHMI or use of its name, contact: *
* *
* Howard Hughes Medical Institute *
* 4000 Jones Bridge Road *
* Chevy Chase, MD 20815-6789 *
* (301) 215-8500 *
* Email: webmaster...@AT@...hhmi.org *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY *
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES *
* OF MERCHANTABILITY, NON-INFRINGEMENT, OR 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; REASONABLE ROYALTIES; 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. *
* *
* The names of the authors and copyright holders may not be used in advertising or *
* publicity pertaining to the software without specific, written prior permission. *
* Title to copyright in this software will remain with copyright holders. *
* *
\*****************************************************************************************/
This file contains basic instructions for installing and running the cell lineaging software package “Tracking with Gaussian Mixture Models” (TGMM). The code provided here has been tested with the 64-bit version of Windows 7 and with the 64-bit version of Ubuntu Linux 12.04 LTS, using a variety of CUDA-compatible NVIDIA GPUs.
1.-CONTENTS OF THE SOFTWARE ARCHIVE
-----------------------------------
We assume that the user has uncompressed the file “Supplementary_Software_1.zip” in a folder of their choice, referred to here as $ROOT_TGMM. The subfolders in $ROOT_TGMM contain the following components:
-"src": All source code files. This folder also includes a CMakeList.txt file that can be used to generate a Visual Studio solution (using CMake) and compile the source code.
-"doc": Documentation of the TGMM software.
-"build": A Visual Studio C++ 2013 project generated from src using CMake. This subfolder also contains precompiled binaries, suitable for running the code without the need for re-compiling the source code.
-"data": Contains a three-dimensional time-lapse data set with 31 time points (corresponding to a cropped sub-region of the Drosophila SiMView recording presented in the main text), for testing the TGMM code and ensuring that the software is running as expected.
-"bin": Contains the Windows 7 64bit executables to run the code. If you compile the source code yourself, the executables for the release version will be placed here. Here you can also find all the necessary DLL (CUDA and MSVC runtime) as well as the txt files containing machine learning classifiers.
Note: The Visual Studio project will not compile unless the folder "build" is copied to the same absolute path as that used to generate the project. We provide the full project folder primarily as a reference for the final structure of a successful Visual Studio solution.
2.-INSTALLATION AND SOFTWARE REQUIREMENTS
-----------------------------------------
In order to run the precompiled binaries, the following auxiliary software package must be installed as well:
-CUDA Toolkit 6.5: required to run algorithms on an NVIDIA GPU
Download: https://developer.nvidia.com/cuda-toolkit-archive
In Ubuntu Linux distribution you can just type from terminal: sudo apt-get install nvidia-cuda-toolkit
We provide precompiled binaries for the 64-bit version of Windows 7. The folder with the precompiled binaries also contains all required DLLs, and thus no external software packages other than the CUDA drivers mentioned above need to be installed. The software can effectively be run out-of-the-box, as detailed below in section 3.
For Linux, compilation of the source code is required (see detailed instructions in section 2.1). For compiling the source code, any software version equal to or above the CUDA Toolkit software version listed above should suffice.
For possible common runtime errors and solutions see section 5.
2.1-Source code compilation in Linux
A.-Make sure CMake is installed (http://www.cmake.org/). For Ubuntu distributions, you can simply use the following command:
sudo apt-get install cmake cmake-gui
B.-Go to the folder $ROOT_TGMM and create a new folder called "build", where the binaries will subsequently be generated:
cd $ROOT_TGMM
mkdir build
cd build
C.-In the build folder, execute the following commands:
cmake -DCMAKE_BUILD_TYPE=Release ../src/
make -j
make install
The first command locates all libraries (for example, from the CUDA Toolkit) and generates all necessary makefiles to compile the code. The second command calls these makefiles. The -j options indicates the usage of multiple cores to compile faster.
After executing the second command, you should see messages in the terminal commenting on the compilation progress. If the progress report reaches 100%, the program has compiled successfully. The third command places the appropriate executables in the bin folder.
After successful compilation, the executables $ROOT_TGMM/bin/ProcessStack and $ROOT_TGMM/bin/TGMM should be present. You can use cmake-gui or cmake options to change different parameters in the makefiles (for example, final destination folder).
Note: if you receive an error similar to
make[2]: *** No rule to make target `/usr/lib64/libcusparse.so', needed by `TGMM' in newer Linux distributions type the following command from the terminal: sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
Briefly, newer distributions of Linux have been changing the location of system libraries (such as Nvidia CUDA) and CMake misplaces the target location. So we are just creating a symbolic link to help the compiler find the files.
3.-RUNNING THE TGMM SOFTWARE
----------------------------
We provide a test data set that allows the user to test the code and familiarize themselves with software configuration before applying the code to their own data sets. Currently, 2D+time and 3D+time datasets with 8-bit or 16-bit unsigned integer TIFF stacks are supported as the input data format. The two-dimensional or three-dimensional image data recorded for each time point should be provided as a single TIFF file.
3.1-Configuration file
The file “$ROOT_TGMM\data\TGMM_configFile.txt” serves as a template for the configuration file and contains all parameters required to run the TGMM code. In principle (and for all results presented in this study), only parameters listed under “main parameters” need to be modified for each new experiment. Access to parameters listed under “advanced parameters” is provided as well and is intended for experienced users who wish to experiment further with the code.
Each parameter is accompanied by a description of its functionality (see section "Overview of advanced framework parameters" in the Supplementary Materials for more details). In order to process a new data set, simply copy the configuration text file and adjust parameters as needed.
IMPORTANT NOTE: Before applying the TGMM software to the test data set, the variables debugPathPrefix and imgFilePattern in the configuration file need to be adjusted, so the software can locate the image stacks (imgFilePattern) and save the results (debugPathPrefix).
3.2-Watershed segmentation with persistence-based agglomeration
WINDOWS
-------
In order to generate the hierarchical segmentation for each time point, follow these three steps:
A.-Open a Windows command line terminal (run “cmd.exe”).
B.-Go to the folder “$ROOT_TGMM\bin”.
C.-Execute the command “ProcessStackBatchMulticore.exe $ROOT_TGMM\data\TGMM_configFile.txt 0 30”.
The program automatically detects how many processing cores are present in the workstation and parallelizes the image segmentation task accordingly. The last two arguments are the first time point and the last time point of the time-lapse image data set.
Once processing is complete, new files “$ROOT_TGMM\data\TM?????_timeFused_blending\ SPC0_CM0_CM1_CHN00_CHN01.fusedStack_?????_hierarchicalSegmentation_conn3D74_medFilRad2.bin“ should have been generated (one for each time point). These binary files store all information required to restore the hierarchical segmentation for each time point. If the binary files were not created, an error occurred during execution of “ProcessStackBatchMulticore.exe” and a corresponding error message is displayed in the terminal.
LINUX
-----
In order to generate the hierarchical segmentation for each time point, follow these three steps:
A.-Open a terminal.
B.-Go to the folder “$ROOT_TGMM/bin”.
C.-Execute the following command: seq -w 0 30 | parallel -j8 ./ProcessStack ${ROOT_TGMM}/data/TGMM_configFile_linux.txt {}
The option -j8 indicates how many cores should be used in parallel (in this case 8). The last option, {0..30}, indicates that the program ProcessStack should be executed for time points 0 to 30.
IMPORTANT NOTE: The command parallel is part of the GNU software (http://www.gnu.org/software/parallel/). The program presents an easy interface to call programs in parallel. If this software is not already installed, it can be downloaded from the GNU website or installed from official repositories. For example, in Ubuntu you can simply use the following command: sudo apt-get install moreutils
IMPORTANT NOTE: Make sure to use TGMM_configFile_linux.txt instead of TGMM_configFile.txt, since the latter contains Windows end-of-line symbols that will lead to a failure during code parsing in Linux. You can also use the tool dos2unix to ensure that any given text file can be used as a config file.
Note: if you have access to a large cluster, you can run all the watershed segmentation in parallel for each image. In the case that not all cores in the cluster have access to GPU CUDA computing, you can use the ProcessStack_woGPU executable.
3.3-Bayesian sequential tracking with Gaussian Mixture Models
In order to track cell nuclei and reconstruct cell lineages, follow these three steps (the same instructions are valid for Windows and Linux):
A.-Open a Windows command line terminal (run “cmd.exe” in Windows).
B.-Go to the folder “$ROOT_TGMM\bin”.
C.-Execute the command: “TGMM.exe $ROOT_TGMM\data\TGMM_configFile.txt 0 30”
The command line will display notifications about the progress of the tracking and segmentation algorithm. Since the hierarchical segmentation results from step 3.2 are saved separately in the “.bin” files, different tracking parameter settings can be tested without the need for recalculating or changing the segmentation data. The output data format of the tracking module is explained in section 4.
3.4-Verifying successful program execution
In order to simplify the verification of successful TGMM software execution, we provide the output for the test data set in “$ROOT_TGMM\data\TGMMruns_testRunToCheckOutput”. The output generated by your execution of the program should be very similar to the contents of this folder.
4.-TRACKING AND SEGMENTATION OUTPUT DATA FORMAT
-----------------------------------------------
The folder “debugPathPrefix\GMEMtracking3D_%date“ contains the output of the TGMM run.
The final result can be found in the subfolder “$debugPathPrefix\GMEMtracking3D_%date\ XML_finalResult_lht” or “$debugPathPrefix\GMEMtracking3D_%date\XML_finalResult_lht_ bckgRm”. The latter directory is used if the user applied the background classifier. The output subfolder contains one XML file and one “.svb” file per time point.
The XML file contains the main tracking and segmentation information. Each object is stored under the tag <GaussianMixtureModel> with the following attributes:
-id [integer]: unique id of the object in this particular time point.
-lineage [integer]: unique id of the cell lineage the object belongs to.
-parent [integer]: id of the linked object at the previous time point. Following the chain of “parent” objects reconstructs the track. A value of -1 indicates the birth of a track.
-splitScore [float]: confidence level for the correct tracking of this particular object. A value of 0 indicates very low confidence and a value of 5 indicates very high confidence. Sorting elements by confidence level can guide the user in the data curation process and facilitate more effective editing of the TGMM results (see main text and Fig. 4).
-scale [float[3]]: voxel scaling factors along the x-, y- and z-axis.
-nu, beta, alpha [float]: value of the hyper-parameters for the Bayesian GMM.
-m [float[3]]: mean of the Gaussian Mixture (object centroid, in pixels).
-W [float[3][3]]: precision matrix of the Gaussian Mixture (object shape).
-*Prior: same as before, but for prior values obtained from the previous time point. These values are used during the inference procedure.
-svIdx [integer[]]: list of indices of the super-voxels clustered by this Gaussian. Together with the “.svb” file, this information can be used to obtain precise segmentation regions for each object.
The “.svb” file is a binary file in a custom format that can be read with the constructor “supervoxel::supervoxel(istream& is)”. Briefly, it contains information about all super-voxels generated at a particular time point. Thus, using the “svIdx” attribute, the precise segmentation mask for each object can be recovered.
IMPORTANT NOTE: Users can download a set of Matlab scripts in the zip file “readTGMM_XMLoutput.zip” at http://sourceforge.net/projects/tgmm/files/ in order to import the data to Matlab for further analysis. The zip file also includes a README file explaining how to use these scripts.
5.-TROUBLESHOOTING COMMON RUNTIME ERRORS
----------------------------------------
5.1-Program execution starts and one of the following error messages is displayed in the terminal: "no CUDA-capable device is detected" or "CUDA driver version is insufficient for CUDA runtime version".
First, confirm that the workstation is equipped with an NVIDIA CUDA-capable graphics card. This is a hardware requirement for running the software. If such a card is installed, you most likely need to update the driver in order to be compatible with CUDA Toolkit 5.5. Go to https://developer.nvidia.com/cuda-downloads and download the current toolkit. The toolkit will also install an updated NVIDIA driver.
5.2-When you try to run the program from the terminal, a Windows dialog pops up with the following message "The program can't start because msvcp100.dll is missing from your computer”.
For some reason, the provided DLL from the Microsoft Visual C++ 2013 SP1 Redistributable Package (x64) is not compatible with your windows version. Delete the DLL from the TGMM software folder and go to http://www.microsoft.com/en-us/download/confirmation.aspx?id=13523 to download and install the appropriate version of the Microsoft Visual C++ 2013 SP1 Redistributable Package.
5.3-Note that the program needs to be called from a “cmd.exe” terminal in Windows. Cygwin or MinGw terminals cause the program to fail.
5.4-“ProcessStackBatchMulticore.exe” requires paths to be provided using absolute path names. The use of relative path names also causes the program to fail.
5.5-Note that both the parameter “imgFilePattern” and "debugPathPrefix" in the configuration file “TGMM_configFile.txt” require the use of forward slashes in path names.
File added
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
set(CMAKE_C_COMPILER "/bin/cc")
set(CMAKE_C_COMPILER_ARG1 "")
set(CMAKE_C_COMPILER_ID "GNU")
set(CMAKE_C_COMPILER_VERSION "4.8.5")
set(CMAKE_C_COMPILER_WRAPPER "")
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "90")
set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert")
set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes")
set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros")
set(CMAKE_C11_COMPILE_FEATURES "c_static_assert")
set(CMAKE_C_PLATFORM_ID "Linux")
set(CMAKE_C_SIMULATE_ID "")
set(CMAKE_C_SIMULATE_VERSION "")
set(CMAKE_AR "/bin/ar")
set(CMAKE_RANLIB "/bin/ranlib")
set(CMAKE_LINKER "/bin/ld")
set(CMAKE_COMPILER_IS_GNUCC 1)
set(CMAKE_C_COMPILER_LOADED 1)
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_C_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW )
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_C_COMPILER_ENV_VAR "CC")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_C_COMPILER_ID_RUN 1)
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_C_LINKER_PREFERENCE 10)
# Save compiler ABI information.
set(CMAKE_C_SIZEOF_DATA_PTR "8")
set(CMAKE_C_COMPILER_ABI "ELF")
set(CMAKE_C_LIBRARY_ARCHITECTURE "")
if(CMAKE_C_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_C_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
endif()
if(CMAKE_C_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "")
endif()
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c")
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/software/cuda-7.5-el7-x86_64/extras/CUPTI/lib64;/software/cuda-7.5-el7-x86_64/lib64;/software/slurm-current-el7-x86_64/lib64;/software/gcc-6.2-el7-x86_64/lib64;/software/git-2.10-el7-x86_64/lib64;/software/subversion-1.9.4-el7-x86_64/lib64;/usr/lib/gcc/x86_64-redhat-linux/4.8.5;/usr/lib64;/lib64;/usr/lib64/nvidia;/software/cuda-7.5-el7-x86_64/lib;/software/slurm-current-el7-x86_64/lib;/software/gcc-6.2-el7-x86_64/lib;/software/subversion-1.9.4-el7-x86_64/lib;/software/serf-1.3.9-el7-x86_64/lib;/usr/lib")
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
set(CMAKE_CXX_COMPILER "/bin/c++")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "GNU")
set(CMAKE_CXX_COMPILER_VERSION "4.8.5")
set(CMAKE_CXX_COMPILER_WRAPPER "")
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98")
set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_template_template_parameters")
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
set(CMAKE_CXX14_COMPILE_FEATURES "")
set(CMAKE_CXX_PLATFORM_ID "Linux")
set(CMAKE_CXX_SIMULATE_ID "")
set(CMAKE_CXX_SIMULATE_VERSION "")
set(CMAKE_AR "/bin/ar")
set(CMAKE_RANLIB "/bin/ranlib")
set(CMAKE_LINKER "/bin/ld")
set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_CXX_COMPILER_LOADED 1)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_CXX_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW )
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_CXX_COMPILER_ID_RUN 1)
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
set(CMAKE_CXX_LINKER_PREFERENCE 30)
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
# Save compiler ABI information.
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
set(CMAKE_CXX_COMPILER_ABI "ELF")
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
if(CMAKE_CXX_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_CXX_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
endif()
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "")
endif()
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;c")
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/software/cuda-7.5-el7-x86_64/extras/CUPTI/lib64;/software/cuda-7.5-el7-x86_64/lib64;/software/slurm-current-el7-x86_64/lib64;/software/gcc-6.2-el7-x86_64/lib64;/software/git-2.10-el7-x86_64/lib64;/software/subversion-1.9.4-el7-x86_64/lib64;/usr/lib/gcc/x86_64-redhat-linux/4.8.5;/usr/lib64;/lib64;/usr/lib64/nvidia;/software/cuda-7.5-el7-x86_64/lib;/software/slurm-current-el7-x86_64/lib;/software/gcc-6.2-el7-x86_64/lib;/software/subversion-1.9.4-el7-x86_64/lib;/software/serf-1.3.9-el7-x86_64/lib;/usr/lib")
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment