Skip to content

Commit 52e7e60

Browse files
committed
a first set of examples
- example CMake config for MOOSE applications - basic database example - basic command string example
1 parent fc45969 commit 52e7e60

File tree

6 files changed

+221
-0
lines changed

6 files changed

+221
-0
lines changed

Examples/CMakeLists.txt

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
################################################################################
2+
#
3+
# Permission to use, copy, modify, and/or distribute this software for any
4+
# purpose with or without fee is hereby granted.
5+
#
6+
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
7+
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
8+
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
9+
# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
10+
# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
11+
# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
12+
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
13+
#
14+
################################################################################
15+
16+
CMAKE_MINIMUM_REQUIRED(VERSION 3.1.3)
17+
18+
PROJECT(BrlCadMooseExamples)
19+
20+
SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
21+
22+
FIND_PACKAGE(BRLCAD_MOOSE REQUIRED)
23+
24+
IF(BRLCAD_MOOSE_FOUND)
25+
ADD_SUBDIRECTORY(Database)
26+
ADD_SUBDIRECTORY(CommandString)
27+
ELSE(BRLCAD_MOOSE_FOUND)
28+
MESSAGE(FATAL_ERROR "Could not find BRL-CAD MOOSE")
29+
ENDIF(BRLCAD_MOOSE_FOUND)

Examples/CommandString/CMakeLists.txt

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#########################################################################
2+
#
3+
# Permission to use, copy, modify, and/or distribute this software for any
4+
# purpose with or without fee is hereby granted.
5+
#
6+
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
7+
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
8+
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
9+
# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
10+
# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
11+
# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
12+
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
13+
#
14+
#########################################################################
15+
16+
17+
INCLUDE_DIRECTORIES(
18+
${BRLCAD_MOOSE_INCLUDE_DIR}
19+
)
20+
21+
SET(CommandStringSources
22+
PrintTitle.cpp
23+
)
24+
25+
IF(MSVC)
26+
ADD_DEFINITIONS(-DBRLCAD_MOOSE_EXPORT=__declspec(dllimport))
27+
ELSE(MSVC)
28+
ADD_DEFINITIONS(-DBRLCAD_MOOSE_EXPORT=)
29+
ENDIF(MSVC)
30+
31+
ADD_EXECUTABLE(CommandString ${CommandStringSources})
32+
TARGET_LINK_LIBRARIES(CommandString ${BRLCAD_MOOSE_LIBRARY} pthread)
33+
SET_TARGET_PROPERTIES(CommandString PROPERTIES OUTPUT_NAME "printtitle_commandstring")

Examples/CommandString/PrintTitle.cpp

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
* Permission to use, copy, modify, and/or distribute this software for any
3+
* purpose with or without fee is hereby granted.
4+
*
5+
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
6+
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
7+
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
8+
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
9+
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
10+
* CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
11+
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
12+
*/
13+
14+
#include <iostream>
15+
16+
#include <brlcad/Database/FileDatabase.h>
17+
#include <brlcad/CommandString/CommandString.h>
18+
19+
20+
int main
21+
(
22+
int argc,
23+
char* argv[]
24+
) {
25+
int ret = 0;
26+
27+
if (argc < 2) {
28+
std::cerr << "Usage: " << argv[0] << " <BRL-CAD Database>";
29+
ret = 1;
30+
}
31+
else {
32+
BRLCAD::FileDatabase database;
33+
34+
if (database.Load(argv[1])) {
35+
BRLCAD::CommandString parser(database);
36+
std::vector<const char*> arguments = {"title"};
37+
38+
if (parser.Parse(arguments))
39+
std::cout << parser.Results() << std::endl;
40+
else {
41+
ret = 3;
42+
std::cerr << "Could not parse file: " << argv[1] << std::endl;
43+
}
44+
}
45+
else {
46+
std::cerr << "Could not load file: " << argv[1] << std::endl;
47+
ret = 2;
48+
}
49+
}
50+
51+
return ret;
52+
}

Examples/Database/CMakeLists.txt

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#########################################################################
2+
#
3+
# Permission to use, copy, modify, and/or distribute this software for any
4+
# purpose with or without fee is hereby granted.
5+
#
6+
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
7+
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
8+
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
9+
# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
10+
# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
11+
# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
12+
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
13+
#
14+
#########################################################################
15+
16+
17+
INCLUDE_DIRECTORIES(
18+
${BRLCAD_MOOSE_INCLUDE_DIR}
19+
)
20+
21+
SET(DatabaseSources
22+
PrintTitle.cpp
23+
)
24+
25+
IF(MSVC)
26+
ADD_DEFINITIONS(-DBRLCAD_MOOSE_EXPORT=__declspec(dllimport))
27+
ELSE(MSVC)
28+
ADD_DEFINITIONS(-DBRLCAD_MOOSE_EXPORT=)
29+
ENDIF(MSVC)
30+
31+
ADD_EXECUTABLE(Database ${DatabaseSources})
32+
TARGET_LINK_LIBRARIES(Database ${BRLCAD_MOOSE_LIBRARY} pthread)
33+
SET_TARGET_PROPERTIES(Database PROPERTIES OUTPUT_NAME "printtitle_database")

Examples/Database/PrintTitle.cpp

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Permission to use, copy, modify, and/or distribute this software for any
3+
* purpose with or without fee is hereby granted.
4+
*
5+
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
6+
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
7+
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
8+
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
9+
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
10+
* CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
11+
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
12+
*/
13+
14+
#include <iostream>
15+
16+
#include <brlcad/Database/ConstDatabase.h>
17+
18+
19+
int main
20+
(
21+
int argc,
22+
char* argv[]
23+
) {
24+
int ret = 0;
25+
26+
if (argc < 2) {
27+
std::cerr << "Usage: " << argv[0] << " <BRL-CAD Database>";
28+
ret = 1;
29+
}
30+
else {
31+
BRLCAD::ConstDatabase database;
32+
33+
if (database.Load(argv[1]))
34+
std::cout << database.Title() << std::endl;
35+
else {
36+
std::cerr << "Could not load file: " << argv[1] << std::endl;
37+
ret = 2;
38+
}
39+
}
40+
41+
return ret;
42+
}

Examples/cmake/FindBRLCAD_MOOSE.cmake

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
################################################################################
2+
#
3+
# Permission to use, copy, modify, and/or distribute this software for any
4+
# purpose with or without fee is hereby granted.
5+
#
6+
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
7+
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
8+
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
9+
# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
10+
# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
11+
# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
12+
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
13+
#
14+
################################################################################
15+
16+
IF(NOT BRLCAD_MOOSE_DIR)
17+
MESSAGE(WARNING "BRLCAD_MOOSE_DIR not set")
18+
ENDIF(NOT BRLCAD_MOOSE_DIR)
19+
20+
IF(CMAKE_LINK_LIBRARY_SUFFIX)
21+
FIND_PATH(BRLCAD_MOOSE_LIBRARY_DIR NAMES "brlcad${CMAKE_LINK_LIBRARY_SUFFIX}" "libbrlcad${CMAKE_LINK_LIBRARY_SUFFIX}" PATHS ${BRLCAD_MOOSE_DIR} PATH_SUFFIXES lib libs bin)
22+
ELSE(CMAKE_LINK_LIBRARY_SUFFIX)
23+
FIND_PATH(BRLCAD_MOOSE_LIBRARY_DIR NAMES "brlcad${CMAKE_SHARED_LIBRARY_SUFFIX}" "libbrlcad${CMAKE_SHARED_LIBRARY_SUFFIX}" PATHS ${BRLCAD_MOOSE_DIR} PATH_SUFFIXES lib libs bin)
24+
ENDIF(CMAKE_LINK_LIBRARY_SUFFIX)
25+
26+
FIND_PATH(BRLCAD_MOOSE_INCLUDE_DIR "brlcad" PATHS ${BRLCAD_MOOSE_DIR} NO_SYSTEM_PATH PATH_SUFFIXES include)
27+
28+
FIND_LIBRARY(BRLCAD_MOOSE_LIBRARY NAMES brlcad PATHS ${BRLCAD_MOOSE_LIBRARY_DIR} NO_SYSTEM_PATH)
29+
30+
IF(BRLCAD_MOOSE_LIBRARY AND BRLCAD_MOOSE_INCLUDE_DIR)
31+
SET(BRLCAD_MOOSE_FOUND TRUE)
32+
ENDIF(BRLCAD_MOOSE_LIBRARY AND BRLCAD_MOOSE_INCLUDE_DIR)

0 commit comments

Comments
 (0)