Skip to content

Commit

Permalink
Squashed 'externals/coda-oss/' changes from e26a32d..312e46d
Browse files Browse the repository at this point in the history
312e46d Merge pull request #269 from mdaus/CMake
6fc639c Set Conan recipe to use short_paths mode by default on Windows.
62f33ef Add Github Actions to build and unittest each push.
2180840 Allow CMake to build Python modules without SWIG.
ae1a9d6 Improve option handling and documentation for Conan builds.
8d5d3d4 Minor fixes for CMake build and documentation.
2d24b75 Clean up and document CMake build.
05e7505 Clean up CMake changes for merge.
7093380 Refactor and improve CMake build.
ede7427 Fix Conan build issues for Windows.
b71f5a2 Refactor CMake and Conan configuration.
cb5a424 Improve conan support.
12c8a15 Refactor CMake build and add conan recipe.
e90f70b Update CMake build utilities to work for c modules.
b729fdb Refactor CMake build and enable target exports.
db4f77c Fix a few more CMake build issues for downstream projects.
43f3287 Fix several CMake build issues for downstream projects.
4664aab Fix CMake path variable for downstream projects.
e4cee83 Simplify and tweak CMake build
d53469d Refactor CMake build
77dd6bb Add CMake alias libraries for xml and j2k.
3098b36 Implement partial install for CMake build.
f0ed7c8 Rework CMake jpeg and openjpeg builds similar to waf, and add options to use preinstalled drivers.
4c4755f Refactor CMake build functions to use named parameters.
ba77a0f Rework CMake XercesC build similar to waf.
dd7dd66 Rework CMake openjpeg build similar to waf.
90cc229 Rework CMake pcre and libjpeg builds similar to waf.
4cfc3f0 Create CMake function for adding plugins.
eca5b03 Add -c++ suffix to CMake C++ target names.
3dda107 Fix some CMake issues for downstream projects.
dc59044 Refactor main CMakeLists for use by downstream projects.
8f3fc57 Merge remote-tracking branch 'origin/master' into CMake_update_win
1c977a4 Fix Xerces library filename on Windows.
c8a211f Add the Python swig wrappers to the CMake build.
72a2918 Fix for CMake build of Xerces on Linux.
3149210 Rework CMake build of tests.
71c084d Fix Boost issues with CMake build.
0478993 Fix more CMake issues.
455b759 Fix and clean up Windows CMake build.
755bfa1 Fix more CMake Windows build issues.
acba09a Fix Windows CMake Release build.
fb08593 Start adding Boost support for CMake build
7011908 Build CMake dependencies with ExternalProject_Add.
e6d1ee0 Improve CMake Python support
b0dd412 Add partial CMake Python support.
a1474bd Fix Python link issue.
3c8d0ba Fix some CMake build issues with header installation.
5f63496 Start implementing CMake build for SWIG modules.
d8485f1 Fix a CMake build of numpyutils.
e683f0f Fix CMake build issues.
bb90881 Fix a few issues with the Linux CMake build.
ead43f4 Fix a lot of CMake build issues.
823e1fd Fix CMake Windows build issues with XercesC, PCRE, and ZLIB.
6833e40 Rework xerces CMake build.
ceeed17 Move CMake helper functions to separate file.
f996457 Remove CMake build for openssl and disable jpeg on Windows.
adf65f0 Implement CMake build for polygon module.
f98e6fb Disable unneeded e2fsprogs-uuid build on Windows.
b0e82f3 Disable openssl build on Windows.
8c46fc4 Add updated Xerces library for Windows compatibility.
f1b88f4 Improve CMake build for pcre and xml
6604d87 Fix Windows build issues with pcre and openssl.
e4ad3f7 Fix a few CMake build issues.
b405754 Merge remote-tracking branch 'origin/master' into CMake_update
946fdfd Merge branch 'master' into CMake_update
6d32f31 Add support for building most drivers on Linux.
3af7c66 Initial partial implementation of CMake build support for CODA-oss

git-subtree-dir: externals/coda-oss
git-subtree-split: 312e46d
  • Loading branch information
Jeff Randolph committed Apr 28, 2020
1 parent 0bb051c commit df7acfb
Show file tree
Hide file tree
Showing 79 changed files with 3,502 additions and 13 deletions.
56 changes: 56 additions & 0 deletions .github/workflows/build_unittest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: build_unittest

on: [push]

jobs:
build-windows:
name: Windows
runs-on: [windows-latest]

steps:
- uses: actions/checkout@v2
- name: configure
run: |
ls env:
mkdir target
cd target
cmake .. -DCMAKE_INSTALL_PREFIX=installWindows-Github -DPYTHON_VERSION="3.7"
- name: build
run: |
cd target
cmake --build . --config Release -j
- name: install
run: |
cd target
cmake --build . --config Release --target install
- name: test
run: |
cd target
ctest -C Release
build-linux:
name: Linux
runs-on: [ubuntu-latest]

steps:
- uses: actions/checkout@v2
- name: configure
run: |
env
which python
mkdir target
cd target
cmake .. -DCMAKE_INSTALL_PREFIX=installLinux-Github -DPYTHON_VERSION=3.7
- name: build
run: |
cd target
cmake --build . -j
- name: install
run: |
cd target
cmake --build . --target install
- name: test
run: |
cd target
ctest
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
*.swp
*~
*.pyc

__pycache__/
# Build artifacts

install/
target/
test_package/build/

# Waf

.waf-*
waf-*
.waf3-*
waf3-*
.lock-waf*
build/waf*/

# Eclipse
.project
.cproject

# Drivers

modules/drivers/fftw/fftw-2.1.5/
modules/drivers/jpeg/jpeg-9/
modules/drivers/j2k/openjpeg/openjpeg-2.3.0_mod/
Expand All @@ -30,5 +30,6 @@ modules/drivers/xml/xerces/xerces-c-3.1.1/
modules/drivers/zlib/zlib-1.2.7/

# VS
.vs/
project.sln
.depproj/
47 changes: 47 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# - CODA-OSS CMake Build script.
#
# Author: Scott A. Colcord

cmake_minimum_required(VERSION 3.14)

project(coda-oss)

set(CMAKE_CXX_STANDARD 11)

if (${CMAKE_PROJECT_NAME} STREQUAL coda-oss)
# this is the top level project

# set up warnings
if (MSVC)
# set warning level to /W3
string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REGEX REPLACE "/W[0-4]" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
add_compile_options(/W3 /wd4290 /wd4512)
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS)
elseif (UNIX)
add_compile_options(
-Wno-deprecated
-Wno-unused-value
-Wno-unused-but-set-variable
)
endif()

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(CodaBuild)

coda_initialize_build()

# install our cmake build modules for downstream use
install(DIRECTORY "cmake/"
DESTINATION "${CODA_STD_PROJECT_LIB_DIR}/cmake/"
FILES_MATCHING PATTERN "*.cmake")
endif()

add_subdirectory("modules")

# generate package config, with the following paths exported
set(JARS_DIR ${CODA_STD_PROJECT_LIB_DIR} CACHE INTERNAL
"path to installed jars, needed by downstream projects")
set(SWIG_INCLUDE_DIR "${CODA_STD_PROJECT_INCLUDE_DIR}/swig" CACHE INTERNAL
"path to installed SWIG includes, needed by downstream projects")
coda_generate_package_config(JARS_DIR SWIG_INCLUDE_DIR)
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
_________________________
_________________________
| ____ _||_ ___ __ |
| /___ \/_||_\| __\/ \ |
| // \// || \|| \\ _ \ |
Expand All @@ -7,18 +7,18 @@
| \\ _/ |\_||_/||__/|| || |
| \___/ \_||_/|___/|| || |
|__________||_____________|
CODA is a set of modules, and each module, while complimentary to one another, has

CODA is a set of modules, and each module, while complimentary to one another, has
a very specific and largely independent purpose.

Building CODA
--------------

We primarily use Waf for building. Below are all of the options available.
CODA may be built using Waf or CMake. Below are all of the options available for Waf. See cmake/README.md for CMake build instructions.

> python waf --help
waf [command] [options]

Main commands (example: ./waf build -j4)
build : builds the project
clean : removes the build files
Expand All @@ -27,7 +27,7 @@ We primarily use Waf for building. Below are all of the options available.
distcheck: checks if the sources compile (tarball from 'dist')
install : installs the build files
uninstall: removes the installed files

Options:
--version show program's version number and exit
-h, --help show this help message and exit
Expand Down Expand Up @@ -100,15 +100,15 @@ We primarily use Waf for building. Below are all of the options available.
-s SRCDIR, --srcdir=SRCDIR
src dir for the project (configuration)
--prefix=PREFIX installation prefix (configuration) [default: '/usr/local/']

installation options:
--destdir=DESTDIR installation root [default: '']
-f, --force force file installation

C Compiler Options:
--check-c-compiler=CHECK_C_COMPILER
On this platform (linux) the following C-Compiler will be checked by default: "gcc icc suncc"

C++ Compiler Options:
--check-cxx-compiler=CHECK_CXX_COMPILER
On this platform (linux) the following C++ Compiler will be checked by default: "g++ icpc sunc++"
Expand All @@ -124,7 +124,7 @@ Sample Build Scenario

Enabling a debugger
-------------------
`-g` and its variants can be achieved at configure time using the
`-g` and its variants can be achieved at configure time using the
`--enable-debugging` switch at waf configure time

Common Errors
Expand Down
Loading

0 comments on commit df7acfb

Please sign in to comment.