diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 3b1e8bf..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,63 +0,0 @@ -version: 2 -jobs: - build-and-test: - working_directory: /ITKBoneEnhancement-build - docker: - - image: insighttoolkit/module-ci:latest - steps: - - checkout: - path: /ITKBoneEnhancement - - run: - name: Fetch CTest driver script - command: | - curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITK/dashboard/itk_common.cmake -O - - run: - name: Configure CTest script - command: | - SHASNIP=$(echo $CIRCLE_SHA1 | cut -c1-7) - cat > dashboard.cmake << EOF - set(CTEST_SITE "CircleCI") - set(CTEST_BUILD_NAME "External-ITKBoneEnhancement-${CIRCLE_BRANCH}-${CIRCLE_BUILD_NUM}-${SHASNIP}") - set(CTEST_BUILD_CONFIGURATION "MinSizeRel") - set(CTEST_CMAKE_GENERATOR "Unix Makefiles") - set(CTEST_BUILD_FLAGS: "-j5") - set(CTEST_SOURCE_DIRECTORY /ITKBoneEnhancement) - set(CTEST_BINARY_DIRECTORY /ITKBoneEnhancement-build) - set(dashboard_model Experimental) - set(dashboard_no_clean 1) - set(dashboard_cache " - ITK_DIR:PATH=/ITK-build - BUILD_TESTING:BOOL=ON - ") - include(\${CTEST_SCRIPT_DIRECTORY}/itk_common.cmake) - EOF - - run: - name: Build and Test - no_output_timeout: 1.0h - command: | - ctest -j 2 -VV -S dashboard.cmake - package: - working_directory: ~/ITKBoneEnhancement - machine: true - steps: - - checkout - - run: - name: Fetch build script - command: | - curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/dockcross-manylinux-download-cache-and-build-module-wheels.sh -O - chmod u+x dockcross-manylinux-download-cache-and-build-module-wheels.sh - - run: - name: Build Python packages - no_output_timeout: 1.0h - command: | - ./dockcross-manylinux-download-cache-and-build-module-wheels.sh - - store_artifacts: - path: dist - destination: dist - -workflows: - version: 2 - build-test-package: - jobs: - - build-and-test - - package diff --git a/.github/workflows/build-test-package.yml b/.github/workflows/build-test-package.yml new file mode 100644 index 0000000..19c517c --- /dev/null +++ b/.github/workflows/build-test-package.yml @@ -0,0 +1,265 @@ +name: Build, test, package + +on: [push,pull_request] + +jobs: + build-test-cxx: + runs-on: ${{ matrix.os }} + strategy: + max-parallel: 3 + matrix: + os: [ubuntu-18.04, windows-2019, macos-10.15] + include: + - os: ubuntu-18.04 + c-compiler: "gcc" + cxx-compiler: "g++" + itk-git-tag: "v5.1.0" + cmake-build-type: "MinSizeRel" + - os: windows-2019 + c-compiler: "cl.exe" + cxx-compiler: "cl.exe" + itk-git-tag: "v5.1.0" + cmake-build-type: "Release" + - os: macos-10.15 + c-compiler: "clang" + cxx-compiler: "clang++" + itk-git-tag: "v5.1.0" + cmake-build-type: "MinSizeRel" + + steps: + - uses: actions/checkout@v1 + + - name: Set up Python 3.7 + uses: actions/setup-python@v1 + with: + python-version: 3.7 + + - name: Install build dependencies + run: | + python -m pip install --upgrade pip + python -m pip install ninja + + - name: Download ITK + run: | + cd .. + git clone https://github.com/InsightSoftwareConsortium/ITK.git + cd ITK + git checkout ${{ matrix.itk-git-tag }} + + - name: Build ITK + if: matrix.os != 'windows-2019' + run: | + cd .. + mkdir ITK-build + cd ITK-build + cmake -DCMAKE_C_COMPILER:FILEPATH="${{ matrix.c-compiler }}" -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_CXX_COMPILER="${{ matrix.cxx-compiler }}" -DCMAKE_BUILD_TYPE:STRING=${{ matrix.cmake-build-type }} -DBUILD_TESTING:BOOL=OFF -GNinja ../ITK + ninja + + - name: Build ITK + if: matrix.os == 'windows-2019' + run: | + cd .. + mkdir ITK-build + cd ITK-build + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + cmake -DCMAKE_C_COMPILER:FILEPATH="${{ matrix.c-compiler }}" -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_CXX_COMPILER="${{ matrix.cxx-compiler }}" -DCMAKE_BUILD_TYPE:STRING=${{ matrix.cmake-build-type }} -DBUILD_TESTING:BOOL=OFF -GNinja ../ITK + ninja + shell: cmd + + - name: Fetch CTest driver script + run: | + curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITK/dashboard/itk_common.cmake -O + + - name: Configure CTest script + shell: bash + run: | + operating_system="${{ matrix.os }}" + cat > dashboard.cmake << EOF + set(CTEST_SITE "GitHubActions") + file(TO_CMAKE_PATH "\$ENV{GITHUB_WORKSPACE}/.." CTEST_DASHBOARD_ROOT) + file(TO_CMAKE_PATH "\$ENV{GITHUB_WORKSPACE}/" CTEST_SOURCE_DIRECTORY) + file(TO_CMAKE_PATH "\$ENV{GITHUB_WORKSPACE}/../build" CTEST_BINARY_DIRECTORY) + set(dashboard_source_name "${GITHUB_REPOSITORY}") + if(ENV{GITHUB_REF} MATCHES "master") + set(branch "-master") + set(dashboard_model "Continuous") + else() + set(branch "-${GITHUB_REF}") + set(dashboard_model "Experimental") + endif() + set(CTEST_BUILD_NAME "${GITHUB_REPOSITORY}-${operating_system}-\${branch}") + set(CTEST_UPDATE_VERSION_ONLY 1) + set(CTEST_TEST_ARGS \${CTEST_TEST_ARGS} PARALLEL_LEVEL \${PARALLEL_LEVEL}) + set(CTEST_BUILD_CONFIGURATION "Release") + set(CTEST_CMAKE_GENERATOR "Ninja") + set(CTEST_CUSTOM_WARNING_EXCEPTION + \${CTEST_CUSTOM_WARNING_EXCEPTION} + # macOS Azure VM Warning + "ld: warning: text-based stub file" + ) + set(dashboard_no_clean 1) + set(ENV{CC} ${{ matrix.c-compiler }}) + set(ENV{CXX} ${{ matrix.cxx-compiler }}) + set(dashboard_cache " + ITK_DIR:PATH=\${CTEST_DASHBOARD_ROOT}/ITK-build + BUILD_TESTING:BOOL=ON + ") + string(TIMESTAMP build_date "%Y-%m-%d") + message("CDash Build Identifier: \${build_date} \${CTEST_BUILD_NAME}") + message("CTEST_SITE = \${CTEST_SITE}") + include(\${CTEST_SCRIPT_DIRECTORY}/itk_common.cmake) + EOF + cat dashboard.cmake + + - name: Build and test + if: matrix.os != 'windows-2019' + run: | + ctest --output-on-failure -j 2 -V -S dashboard.cmake + + - name: Build and test + if: matrix.os == 'windows-2019' + run: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + ctest --output-on-failure -j 2 -V -S dashboard.cmake + shell: cmd + + build-linux-python-packages: + runs-on: ubuntu-18.04 + strategy: + max-parallel: 2 + matrix: + python-version: [35, 36, 37, 38] + include: + - itk-python-git-tag: "v5.1.0.post3" + + steps: + - uses: actions/checkout@v2 + + - name: 'Free up disk space' + run: | + # Workaround for https://github.com/actions/virtual-environments/issues/709 + df -h + sudo apt-get clean + sudo rm -rf "/usr/local/share/boost" + sudo rm -rf "$AGENT_TOOLSDIRECTORY" + df -h + + - name: 'Fetch build script' + run: | + curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/dockcross-manylinux-download-cache-and-build-module-wheels.sh -O + chmod u+x dockcross-manylinux-download-cache-and-build-module-wheels.sh + + - name: 'Build 🐍 Python 📦 package' + run: | + export ITK_PACKAGE_VERSION=${{ matrix.itk-python-git-tag }} + ./dockcross-manylinux-download-cache-and-build-module-wheels.sh cp${{ matrix.python-version }} + + - name: Publish Python package as GitHub Artifact + uses: actions/upload-artifact@v1 + with: + name: LinuxWheel${{ matrix.python-version }} + path: dist + + build-macos-python-packages: + runs-on: macos-10.15 + strategy: + max-parallel: 2 + matrix: + include: + - itk-python-git-tag: "v5.1.0.post3" + + steps: + - uses: actions/checkout@v2 + + - name: 'Fetch build script' + run: | + curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/macpython-download-cache-and-build-module-wheels.sh -O + chmod u+x macpython-download-cache-and-build-module-wheels.sh + + - name: 'Build 🐍 Python 📦 package' + run: | + export ITK_PACKAGE_VERSION=${{ matrix.itk-python-git-tag }} + export MACOSX_DEPLOYMENT_TARGET=10.9 + ./macpython-download-cache-and-build-module-wheels.sh + + - name: Publish Python package as GitHub Artifact + uses: actions/upload-artifact@v1 + with: + name: MacOSWheels + path: dist + + build-windows-python-packages: + runs-on: windows-2019 + strategy: + max-parallel: 2 + matrix: + python-version-minor: [5, 6, 7, 8] + include: + - itk-python-git-tag: "v5.1.0.post3" + + steps: + - uses: actions/checkout@v2 + with: + path: "im" + + - name: 'Install Python' + run: | + $pythonArch = "64" + $pythonVersion = "3.${{ matrix.python-version-minor }}" + iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/scikit-build/scikit-ci-addons/master/windows/install-python.ps1')) + + - name: 'Fetch build dependencies' + shell: bash + run: | + mv im ../../ + cd ../../ + curl -L "https://github.com/InsightSoftwareConsortium/ITKPythonBuilds/releases/download/${{ matrix.itk-python-git-tag }}/ITKPythonBuilds-windows.zip" -o "ITKPythonBuilds-windows.zip" + 7z x ITKPythonBuilds-windows.zip -o/c/P -aoa -r + curl -L "https://data.kitware.com/api/v1/file/5c0ad59d8d777f2179dd3e9c/download" -o "doxygen-1.8.11.windows.bin.zip" + 7z x doxygen-1.8.11.windows.bin.zip -o/c/P/doxygen -aoa -r + curl -L "https://data.kitware.com/api/v1/file/5bbf87ba8d777f06b91f27d6/download/grep-win.zip" -o "grep-win.zip" + 7z x grep-win.zip -o/c/P/grep -aoa -r + + - name: 'Build 🐍 Python 📦 package' + shell: cmd + run: | + cd ../../im + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + set PATH="C:\P\grep;%PATH%" + set CC=cl.exe + set CXX=cl.exe + C:\Python3${{ matrix.python-version-minor }}-x64\python.exe C:\P\IPP\scripts\windows_build_module_wheels.py --py-envs "3${{ matrix.python-version-minor }}-x64" --no-cleanup + + - name: Publish Python package as GitHub Artifact + uses: actions/upload-artifact@v1 + with: + name: WindowWheel3.${{ matrix.python-version-minor }} + path: ../../im/dist + + publish-python-packages-to-pypi: + needs: + - build-linux-python-packages + - build-macos-python-packages + - build-windows-python-packages + runs-on: ubuntu-18.04 + + steps: + - name: Download Python Packages + uses: actions/download-artifact@v2 + + - name: Prepare packages for upload + run: | + ls -R + for d in */; do + mv ${d}/*.whl . + done + mkdir dist + mv *.whl dist/ + ls dist + + - name: Publish 🐍 Python 📦 package to PyPI + if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') + uses: pypa/gh-action-pypi-publish@master + with: + user: __token__ + password: ${{ secrets.pypi_password }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c0a5d09..0000000 --- a/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -sudo: true -language: cpp -os: -- osx -compiler: -- gcc -cache: - directories: - - "$HOME/Library/Caches/Homebrew" -script: -- curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/macpython-download-cache-and-build-module-wheels.sh -O -- chmod u+x macpython-download-cache-and-build-module-wheels.sh -- ./macpython-download-cache-and-build-module-wheels.sh -- tar -zcvf dist.tar.gz dist/ -- curl --upload-file dist.tar.gz https://transfer.sh/dist.tar.gz diff --git a/README.rst b/README.rst index 060b862..975e7e2 100644 --- a/README.rst +++ b/README.rst @@ -1,14 +1,23 @@ ITKBoneEnhancement ================== -.. image:: https://dev.azure.com/ITKBoneEnhancement/ITKBoneEnhancement/_apis/build/status/InsightSoftwareConsortium.ITKBoneEnhancement?branchName=master - :target: https://dev.azure.com/ITKBoneEnhancement/ITKBoneEnhancement/_build/latest?definitionId=1&branchName=master - :alt: Build Status +.. image:: https://github.com/InsightSoftwareConsortium/ITKBoneEnhancement/workflows/Build,%20test,%20package/badge.svg + +.. image:: https://img.shields.io/pypi/v/itk-boneenhancement.svg + :target: https://pypi.python.org/pypi/itk-boneenhancement + :alt: PyPI .. image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg - :target: {{ cookiecutter.download_url }}/blob/master/LICENSE) + :target: https://github.com/InsightSoftwareConsortium/ITKBoneEnhancement/blob/master/LICENSE) :alt: License Various filters for enhancing cortical bones in quantitative computed tomography. ITK is an open-source, cross-platform library that provides developers with an extensive suite of software tools for image analysis. Developed through extreme programming methodologies, ITK employs leading-edge algorithms for registering and segmenting multidimensional scientific images. + +Installation +------------ + +To install the Python packages:: + + pip install itk-boneenhancement diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 99c62fc..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,21 +0,0 @@ -branches: - only: - - master - -version: "0.0.1.{build}" - -install: - - - curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/windows-download-cache-and-build-module-wheels.ps1 -O - - ps: .\windows-download-cache-and-build-module-wheels.ps1 - -build: off - -test: off - -artifacts: - - # pushing entire folder as a zip archive - - path: dist\* - -deploy: off diff --git a/include/itkEigenToMeasureImageFilter.h b/include/itkEigenToMeasureImageFilter.h index 0aaf787..76cd786 100644 --- a/include/itkEigenToMeasureImageFilter.h +++ b/include/itkEigenToMeasureImageFilter.h @@ -91,6 +91,7 @@ class ITK_TEMPLATE_EXPORT EigenToMeasureImageFilter : public ImageToImageFilter< * itkSymmetricEigenAnalysisImageFilter.h or itkSymmetricEigenAnalysis.h. That turns out to be non-trivial * because the enumeration is hidden within the templated class. Therefore, you would need the hessian type * and eigenvalue type to do such an operation. We do not necessarily have the hessian type information. + * \ingroup BoneEnhancement */ enum class EigenValueOrderEnum : uint8_t { @@ -115,9 +116,8 @@ class ITK_TEMPLATE_EXPORT EigenToMeasureImageFilter : public ImageToImageFilter< virtual OutputImagePixelType ProcessPixel(const InputImagePixelType & pixel) = 0; - /** Multi-thread version GenerateData. */ void - DynamicThreadedGenerateData(const OutputImageRegionType & outputRegionForThread) override; + GenerateData() override; }; // end class } // namespace itk diff --git a/include/itkEigenToMeasureImageFilter.hxx b/include/itkEigenToMeasureImageFilter.hxx index b53062a..4c4213f 100644 --- a/include/itkEigenToMeasureImageFilter.hxx +++ b/include/itkEigenToMeasureImageFilter.hxx @@ -28,25 +28,29 @@ namespace itk template void -EigenToMeasureImageFilter::DynamicThreadedGenerateData( - const OutputImageRegionType & outputRegionForThread) +EigenToMeasureImageFilter::GenerateData() { - /* Get Inputs */ - InputImageConstPointer inputPtr = this->GetInput(0); - OutputImagePointer outputPtr = this->GetOutput(0); - MaskSpatialObjectTypeConstPointer maskPointer = this->GetMask(); + const InputImageType * inputPtr = this->GetInput(0); + OutputImageType * outputPtr = this->GetOutput(0); + const MaskSpatialObjectType * maskPointer = this->GetMask(); + + this->AllocateOutputs(); + + this->BeforeThreadedGenerateData(); + + const OutputImageRegionType requestedRegion( outputPtr->GetRequestedRegion() ); // Define the portion of the input to walk for this thread, using // the CallCopyOutputRegionToInputRegion method allows for the input // and output images to be different dimensions InputImageRegionType inputRegionForThread; - this->CallCopyOutputRegionToInputRegion(inputRegionForThread, outputRegionForThread); + this->CallCopyOutputRegionToInputRegion(inputRegionForThread, requestedRegion); MultiThreaderBase::Pointer mt = this->GetMultiThreader(); mt->ParallelizeImageRegion( - outputRegionForThread, - [inputPtr, maskPointer, outputPtr, this](const OutputImageRegionType region) { + requestedRegion, + [inputPtr, maskPointer, outputPtr, this](const OutputImageRegionType & region) { typename InputImageType::PointType point; /* Setup iterator */ @@ -70,6 +74,8 @@ EigenToMeasureImageFilter::DynamicThreadedGenerateDat } }, nullptr); + + this->AfterThreadedGenerateData(); } } // namespace itk diff --git a/include/itkKrcahEigenToMeasureParameterEstimationFilter.h b/include/itkKrcahEigenToMeasureParameterEstimationFilter.h index 02e42b0..3c64151 100644 --- a/include/itkKrcahEigenToMeasureParameterEstimationFilter.h +++ b/include/itkKrcahEigenToMeasureParameterEstimationFilter.h @@ -117,6 +117,7 @@ class KrcahEigenToMeasureParameterEstimationFilter /***\class KrcahImplementationEnum * Krcah implementation type + * \ingroup BoneEnhancement */ enum class KrcahImplementationEnum : uint8_t { diff --git a/include/itkMultiScaleHessianEnhancementImageFilter.h b/include/itkMultiScaleHessianEnhancementImageFilter.h index c2a3e9f..d39383e 100644 --- a/include/itkMultiScaleHessianEnhancementImageFilter.h +++ b/include/itkMultiScaleHessianEnhancementImageFilter.h @@ -126,7 +126,7 @@ class ITK_TEMPLATE_EXPORT MultiScaleHessianEnhancementImageFilter : public Image using EigenToMeasureParameterEstimationFilterType = EigenToMeasureParameterEstimationFilter; /** Need some types to determine how to order the eigenvalues */ - using InternalEigenValueOrderType = typename itk::EigenValueOrderEnum; + using InternalEigenValueOrderType = SymmetricEigenAnalysisEnums::EigenValueOrder; using ExternalEigenValueOrderType = typename EigenToMeasureImageFilterType::EigenValueOrderEnum; /** Set/Get the EigenToMeasureImageFilter. */ @@ -142,6 +142,7 @@ class ITK_TEMPLATE_EXPORT MultiScaleHessianEnhancementImageFilter : public Image using SigmaArrayType = Array; using SigmaStepsType = unsigned int; /**\class SigmaStepMethodEnum + * \ingroup BoneEnhancement * */ enum class SigmaStepMethodEnum : uint8_t { diff --git a/setup.py b/setup.py index e00440d..4dcf1ab 100644 --- a/setup.py +++ b/setup.py @@ -13,13 +13,13 @@ setup( name='itk-boneenhancement', - version='0.2.0', + version='0.3.1', author='Bryce A. Besler', author_email='babesler@ucalgary.ca', packages=['itk'], package_dir={'itk': 'itk'}, - download_url=r'https://github.com/Besler/ITKBoneEnhancement', - description=r'This module is empty. It is a template that is a starting point for a module with actual content.', + download_url=r'https://github.com/InsightSoftwareConsortium/ITKBoneEnhancement', + description=r'Various filters for enhancing cortical bones in quantitative computed tomography.', long_description='ITK is an open-source, cross-platform library that provides developers with an extensive suite of software tools for image analysis. Developed through extreme programming methodologies, ITK employs leading-edge algorithms for registering and segmenting multidimensional scientific images.', classifiers=[ "License :: OSI Approved :: Apache Software License", @@ -44,6 +44,6 @@ keywords='ITK InsightToolkit', url=r'https://itk.org/', install_requires=[ - r'itk>=5.0.1' + r'itk>=5.1.0.post3' ] ) diff --git a/test/azure-pipelines.yml b/test/azure-pipelines.yml deleted file mode 100644 index 239d12c..0000000 --- a/test/azure-pipelines.yml +++ /dev/null @@ -1,219 +0,0 @@ -variables: - ITKGitTag: v5.1rc02 - ITKPythonGitTag: v5.1rc02 - CMakeBuildType: Release - -trigger: - batch: true - branches: - include: - - master - -jobs: - -- job: 'Test' - displayName: "Build and test" - timeoutInMinutes: 0 - cancelTimeoutInMinutes: 300 - - strategy: - matrix: - Linux: - imageName: 'ubuntu-16.04' - cCompiler: gcc - cxxCompiler: g++ - compilerInitialization: '' - macOS: - imageName: 'macos-10.13' - cCompiler: clang - cxxCompiler: clang++ - compilerInitialization: '' - Windows: - imageName: 'vs2017-win2016' - cCompiler: cl.exe - cxxCompiler: cl.exe - compilerInitialization: 'call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat"' - - pool: - vmImage: $(imageName) - - steps: - - bash: | - set -x - if [ -n "$(System.PullRequest.SourceCommitId)" ]; then - git checkout $(System.PullRequest.SourceCommitId) - fi - displayName: 'Checkout pull request HEAD' - - - task: UsePythonVersion@0 - inputs: - versionSpec: '3.7' - architecture: 'x64' - - - script: | - python -m pip install --upgrade pip - python -m pip install --upgrade setuptools - python -m pip install scikit-ci-addons - python -m pip install ninja - displayName: 'Install build dependencies' - - - script: | - git clone https://github.com/InsightSoftwareConsortium/ITK.git - cd ITK - git checkout $(ITKGitTag) - workingDirectory: $(Agent.BuildDirectory) - displayName: 'Download ITK' - - - script: | - mkdir ITK-build - cd ITK-build - $(compilerInitialization) - cmake -DCMAKE_C_COMPILER:FILEPATH="$(cCompiler)" -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_CXX_COMPILER="$(cxxCompiler)" -DCMAKE_BUILD_TYPE:STRING=$(CMakeBuildType) -DBUILD_TESTING:BOOL=OFF -GNinja ../ITK - ninja - workingDirectory: $(Agent.BuildDirectory) - displayName: 'Build ITK' - - - script: | - curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITK/dashboard/itk_common.cmake -O - displayName: 'Fetch CTest driver script' - - - bash: | - cat > dashboard.cmake << EOF - set(CTEST_SITE "Azure.\$ENV{AGENT_MACHINENAME}") - file(TO_CMAKE_PATH "\$ENV{AGENT_BUILDDIRECTORY}" CTEST_DASHBOARD_ROOT) - file(TO_CMAKE_PATH "\$ENV{BUILD_SOURCESDIRECTORY}" CTEST_SOURCE_DIRECTORY) - file(TO_CMAKE_PATH "\$ENV{AGENT_BUILDDIRECTORY}/build" CTEST_BINARY_DIRECTORY) - set(dashboard_source_name "$(Build.Repository.Name)") - if(DEFINED ENV{SYSTEM_PULLREQUEST_SOURCEBRANCH}) - set(branch "-\$ENV{SYSTEM_PULLREQUEST_SOURCEBRANCH}") - set(dashboard_model "Experimental") - elseif(ENV{BUILD_SOURCEBRANCHNAME} STREQUAL "master") - set(branch "-master") - set(dashboard_model "Continuous") - else() - set(branch "-\$ENV{BUILD_SOURCEBRANCHNAME}") - set(dashboard_model "Experimental") - endif() - if(DEFINED ENV{SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}) - set(pr "-PR\$ENV{SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}") - else() - set(pr "") - endif() - set(CTEST_BUILD_NAME "$(Build.Repository.Name)-$(Agent.OS)-Build$(Build.BuildId)\${pr}\${branch}") - set(CTEST_UPDATE_VERSION_ONLY 1) - set(CTEST_TEST_ARGS \${CTEST_TEST_ARGS} PARALLEL_LEVEL \${PARALLEL_LEVEL}) - set(CTEST_BUILD_CONFIGURATION "Release") - set(CTEST_CMAKE_GENERATOR "Ninja") - set(CTEST_CUSTOM_WARNING_EXCEPTION - \${CTEST_CUSTOM_WARNING_EXCEPTION} - # macOS Azure Pipelines - "ld: warning: text-based stub file" - ) - set(dashboard_no_clean 1) - set(ENV{CC} $(cCompiler)) - set(ENV{CXX} $(cxxCompiler)) - set(dashboard_cache " - ITK_DIR:PATH=\${CTEST_DASHBOARD_ROOT}/ITK-build - BUILD_TESTING:BOOL=ON - ") - string(TIMESTAMP build_date "%Y-%m-%d") - message("CDash Build Identifier: \${build_date} \${CTEST_BUILD_NAME}") - message("CTEST_SITE = \${CTEST_SITE}") - include(\${CTEST_SCRIPT_DIRECTORY}/itk_common.cmake) - EOF - cat dashboard.cmake - displayName: 'Configure CTest script' - - - script: | - $(compilerInitialization) - ctest -j 2 -V -S dashboard.cmake - displayName: 'Build and test' - - - script: | - sudo pip3 install --upgrade pip - sudo pip3 install --upgrade setuptools - sudo pip3 install scikit-ci-addons - ci_addons ctest_junit_formatter $(Agent.BuildDirectory)/build > $(Agent.BuildDirectory)/JUnitTestResults.xml - condition: succeededOrFailed() - displayName: 'Format CTest output in JUnit format' - - - task: PublishTestResults@2 - inputs: - testResultsFiles: "$(Agent.BuildDirectory)/JUnitTestResults.xml" - testRunTitle: 'CTest $(Agent.OS)' - condition: succeededOrFailed() - displayName: 'Publish test results' - - -- job: 'PackageLinux' - timeoutInMinutes: 0 - cancelTimeoutInMinutes: 300 - displayName: "Build Linux Python packages" - pool: - vmImage: 'Ubuntu-16.04' - - steps: - - script: | - curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/dockcross-manylinux-download-cache-and-build-module-wheels.sh -O - chmod u+x dockcross-manylinux-download-cache-and-build-module-wheels.sh - displayName: 'Fetch build script' - - - script: | - export ITK_PACKAGE_VERSION=$(ITKPythonGitTag) - ./dockcross-manylinux-download-cache-and-build-module-wheels.sh - displayName: 'Build Python packages' - - - task: PublishPipelineArtifact@0 - inputs: - artifactName: 'LinuxWheels' - targetPath: './dist' - - -- job: 'PackageMacOS' - displayName: "Build macOS Python packages" - timeoutInMinutes: 0 - cancelTimeoutInMinutes: 300 - pool: - vmImage: 'macos-10.14' - - steps: - - script: | - curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/macpython-download-cache-and-build-module-wheels.sh -O - chmod u+x macpython-download-cache-and-build-module-wheels.sh - displayName: 'Fetch build script' - - - script: | - export ITK_PACKAGE_VERSION=$(ITKPythonGitTag) - ./macpython-download-cache-and-build-module-wheels.sh - displayName: 'Build Python packages' - - - task: PublishPipelineArtifact@0 - inputs: - artifactName: 'MacOSWheels' - targetPath: './dist' - - -- job: 'PackageWindows' - displayName: "Build Windows Python packages" - timeoutInMinutes: 0 - cancelTimeoutInMinutes: 300 - pool: - vmImage: 'vs2017-win2016' - - steps: - - script: | - curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/windows-download-cache-and-build-module-wheels.ps1 -O - displayName: 'Fetch build script' - - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - set ITK_PACKAGE_VERSION=$(ITKPythonGitTag) - set CC=cl.exe - set CXX=cl.exe - powershell.exe -file .\windows-download-cache-and-build-module-wheels.ps1 - displayName: 'Build Python packages' - - - task: PublishPipelineArtifact@0 - inputs: - artifactName: 'WindowsWheels' - targetPath: './dist' diff --git a/test/itkDescoteauxEigenToMeasureImageFilterUnitTest.cxx b/test/itkDescoteauxEigenToMeasureImageFilterUnitTest.cxx index 9085dc4..9b30673 100644 --- a/test/itkDescoteauxEigenToMeasureImageFilterUnitTest.cxx +++ b/test/itkDescoteauxEigenToMeasureImageFilterUnitTest.cxx @@ -164,7 +164,7 @@ class itkDescoteauxEigenToMeasureImageFilterUnitTest : public ::testing::Test // Define the templates we would like to test using TestingLabelTypes = ::testing::Types; -TYPED_TEST_CASE(itkDescoteauxEigenToMeasureImageFilterUnitTest, TestingLabelTypes); +TYPED_TEST_SUITE(itkDescoteauxEigenToMeasureImageFilterUnitTest, TestingLabelTypes); TYPED_TEST(itkDescoteauxEigenToMeasureImageFilterUnitTest, InitialParameters) { diff --git a/test/itkDescoteauxEigenToMeasureParameterEstimationFilterUnitTest.cxx b/test/itkDescoteauxEigenToMeasureParameterEstimationFilterUnitTest.cxx index a2101d6..88e3ce9 100644 --- a/test/itkDescoteauxEigenToMeasureParameterEstimationFilterUnitTest.cxx +++ b/test/itkDescoteauxEigenToMeasureParameterEstimationFilterUnitTest.cxx @@ -146,7 +146,7 @@ class itkDescoteauxEigenToMeasureParameterEstimationFilterUnitTest : public ::te // Define the templates we would like to test using TestingLabelTypes = ::testing::Types; -TYPED_TEST_CASE(itkDescoteauxEigenToMeasureParameterEstimationFilterUnitTest, TestingLabelTypes); +TYPED_TEST_SUITE(itkDescoteauxEigenToMeasureParameterEstimationFilterUnitTest, TestingLabelTypes); TYPED_TEST(itkDescoteauxEigenToMeasureParameterEstimationFilterUnitTest, InitialParameters) { diff --git a/test/itkKrcahEigenToMeasureParameterEstimationFilterUnitTest.cxx b/test/itkKrcahEigenToMeasureParameterEstimationFilterUnitTest.cxx index 4f3109c..1cf4179 100644 --- a/test/itkKrcahEigenToMeasureParameterEstimationFilterUnitTest.cxx +++ b/test/itkKrcahEigenToMeasureParameterEstimationFilterUnitTest.cxx @@ -146,7 +146,7 @@ class itkKrcahEigenToMeasureParameterEstimationFilterUnitTest : public ::testing // Define the templates we would like to test using TestingLabelTypes = ::testing::Types; -TYPED_TEST_CASE(itkKrcahEigenToMeasureParameterEstimationFilterUnitTest, TestingLabelTypes); +TYPED_TEST_SUITE(itkKrcahEigenToMeasureParameterEstimationFilterUnitTest, TestingLabelTypes); TYPED_TEST(itkKrcahEigenToMeasureParameterEstimationFilterUnitTest, InitialParameters) {