Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a1f4ed9

Browse files
Fix CMake project (for shape primitives)
1 parent 4a1c4b8 commit a1f4ed9

File tree

2 files changed

+30
-37
lines changed

2 files changed

+30
-37
lines changed

‎ch12/display_model.tex‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,17 @@ \section{Включение библиотеки \name{FLTK} в~проект}
5555
%%=================================================
5656
Рассмотрим внутренности проектного файла \code{CMakeLists.txt}, связанные с~добавлением внешней зависимости.
5757

58-
В~проект необходимо добавить файлы из~библиотеки \code{Graph\_lib}:
58+
В~проект необходимо добавить файлы из~библиотеки \code{Graph\_lib}, которые будут подробно рассмотрены в~последующих \textbookref{главах} учебника. Классы этой библиотеки предоставляют нам сравнительно небольшой набор графических возможностей, реализованных на~основе библиотеки \name{FLTK}.
5959

60-
\cmakefile[firstline=22, lastline=23]{projects/ch12/shape_primitives/CMakeLists.txt}
61-
\cmake' # ...'
62-
\cmakefile[firstline=25, lastline=28]{projects/ch12/shape_primitives/CMakeLists.txt}
63-
64-
\noindent которые будут подробно рассмотрены в~последующих \textbookref{главах} учебника. Классы этой библиотеки предоставляют нам сравнительно небольшой набор графических возможностей, реализованных на~основе библиотеки \name{FLTK}.
60+
\cmakefile[firstline=5, lastline=5]{projects/ch12/shape_primitives/CMakeLists.txt}
61+
\cmake' # ... (our headers)'
62+
\cmakefile[firstline=6, lastline=13]{projects/ch12/shape_primitives/CMakeLists.txt}
63+
\cmake' # ... (our sources)'
64+
\cmakefile[firstline=15, lastline=18]{projects/ch12/shape_primitives/CMakeLists.txt}
6565

6666
Система сборки \name{CMake} имеет механизмы поиска <<внешних>> библиотек в~системе. Это позволяет уменьшить зависимость описания проекта от~платформы, оставляя при~этом возможность вручную задать конкретные пути к~ним в~процессе конфигурации. Для поиска библиотеки \name{FLTK}, а также её зависимости "--- библиотеки более низкого уровня \name{OpenGL}, нужно добавить следующие строки:
6767

68-
\cmakefile[firstline=10, lastline=11]{projects/ch12/shape_primitives/CMakeLists.txt}
68+
\cmakefile[firstline=25, lastline=26]{projects/ch12/shape_primitives/CMakeLists.txt}
6969

7070
\noindent Флаг \code{REQUIRED} указывает, что без~данного компонента невозможна успешная сборка проекта. Таким образом, мы получаем более раннюю диагностику в~виде ошибки на~этапе конфигурирования.
7171

‎projects/ch12/shape_primitives/CMakeLists.txt‎

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,37 @@ cmake_minimum_required(VERSION 3.20)
22

33
set(TARGET "shape_primitives")
44

5-
project(${TARGET} LANGUAGES CXX)
6-
7-
set(FLTK_SKIP_FLUID True)
8-
set(OpenGL_GL_PREFERENCE "GLVND")
9-
10-
find_package(FLTK REQUIRED)
11-
find_package(OpenGL REQUIRED)
12-
13-
include_directories(
14-
SYSTEM
15-
${FLTK_INCLUDE_DIR}
16-
)
17-
18-
link_directories(
19-
${FLTK_INCLUDE_DIR}/../lib
5+
set(HEADERS
6+
${LIB_DIR}/Graph_lib/fltk.h
7+
${LIB_DIR}/Graph_lib/Graph.h
8+
${LIB_DIR}/Graph_lib/GUI.h
9+
${LIB_DIR}/Graph_lib/Point.h
10+
${LIB_DIR}/Graph_lib/Simple_window.h
11+
${LIB_DIR}/Graph_lib/Window.h
2012
)
21-
22-
add_executable(
23-
${TARGET}
13+
set(SOURCES
2414
main.cpp
2515
${LIB_DIR}/Graph_lib/Graph.cpp
2616
${LIB_DIR}/Graph_lib/GUI.cpp
2717
${LIB_DIR}/Graph_lib/Window.cpp
2818
)
2919

30-
target_link_libraries(
31-
${TARGET}
32-
${FLTK_LIBRARIES}
33-
${OPENGL_LIBRARIES}
34-
)
20+
project(${TARGET} LANGUAGES CXX)
21+
22+
set(FLTK_SKIP_FLUID True)
23+
set(FLTK_SKIP_FORMS True)
24+
25+
find_package(FLTK 1.3.8 EXACT REQUIRED)
26+
find_package(OpenGL REQUIRED)
27+
28+
include_directories(SYSTEM ${FLTK_INCLUDE_DIR})
29+
link_directories(${FLTK_INCLUDE_DIR}/../lib)
30+
31+
add_executable(${TARGET} ${HEADERS} ${SOURCES})
3532

36-
if(WIN32)
37-
target_link_libraries(
38-
${TARGET}
39-
fltk_jpeg
40-
fltk_png
41-
fltk_z
42-
)
33+
target_link_libraries(${TARGET} ${FLTK_LIBRARIES} ${OPENGL_LIBRARIES})
34+
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
35+
target_link_libraries(${TARGET} fltk_jpeg fltk_png fltk_z)
4336
endif()
4437

4538
install(TARGETS ${TARGET})

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /