Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Prog2
/
labor_peldak
/
lab_05
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
A prog2-höz tartozó friss repo anyagok itt elérhetőek:
https://git.iit.bme.hu/
Commit
d3c6fecf
authored
Jul 01, 2025
by
András Bodor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmake projekt
parent
db8a90af
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
101 additions
and
17 deletions
+101
-17
CMakeLists.txt
+101
-17
No files found.
CMakeLists.txt
View file @
d3c6fecf
cmake_minimum_required
(
VERSION 3.11
)
# lab_05 project
#
# Originally created: 2023-03-20.
#
# CMakeLists.txt --
# CMake file a lab_05 projekt fordításához.
# Használat:
# - parancssor: cmake -B _build -S . && cmake --build _build
# - CLion/Visual Studio: Megnyitni a mappát projektként
# - HSZK Visual Studio: A meglévő .vcxproj fájlokat érdemes használni
cmake_minimum_required
(
VERSION 3.18
)
# Debian Bullseye
project
(
lab_05
)
include
(
CheckCXXCompilerFlag
)
set
(
CMAKE_CXX_STANDARD 11
)
project
(
cpp_lab_05
VERSION 1.0.0
LANGUAGES CXX
)
if
(
NOT MSVC
)
add_library
(
memtrace STATIC
add_compile_options
(
-pedantic -Wall -Werror
)
memtrace.cpp memtrace.h
)
endif
()
target_compile_features
(
memtrace PRIVATE cxx_std_11
)
target_compile_definitions
(
memtrace PUBLIC MEMTRACE
)
add_executable
(
string5
add_executable
(
lab_05
memtrace.cpp
rendez.h
rendez.cpp
rendez_u8.h
string5.cpp
string5.h
string5_test.cpp
string5.cpp
)
string5_test.cpp
rendez.cpp
)
target_compile_features
(
lab_05 PRIVATE cxx_std_11
)
set_target_properties
(
lab_05 PROPERTIES CXX_EXTENSIONS OFF
)
target_link_libraries
(
lab_05 PRIVATE memtrace
)
target_compile_options
(
lab_05 PRIVATE
$<$<CXX_COMPILER_ID:GNU,Clang,AppleClang>:-Werror>
$<$<CXX_COMPILER_ID:MSVC>:/WX>
)
## CheckWarningFlag(OptionName CacheName) --
# Ellenőrzi, hogy az használt fordító érti-e a kapott parancssori kapcsolót.
function
(
check_warning_flag OptionName CacheName
)
if
(
OptionName MATCHES
[[^/]]
)
set
(
WarningPrefix
""
)
else
()
set
(
WarningPrefix
"-W"
)
endif
()
check_cxx_compiler_flag
(
"
${
WarningPrefix
}${
OptionName
}
"
"HasWarning_
${
CacheName
}
"
)
set
(
"HAS_WARNING_
${
CacheName
}
"
${
HasWarning_
${
CacheName
}}
PARENT_SCOPE
)
endfunction
()
## generate_warnings(&Target) --
# Beállít hibakapcsolókat a kapott target-en.
function
(
generate_warnings _Target
)
set
(
gw_known_warnings
# GCC/Clang
extra pedantic error=vla error=non-virtual-dtor
parentheses logical-op reorder no-c++98-compat
no-reserved-macro-identifier no-unused-macros no-float-equal
no-zero-as-null-pointer-constant no-global-constructors
no-exit-time-destructors no-unsafe-buffer-usage
no-reserved-identifier
# _Is_...
no-old-style-cast
# gtest_lite
no-shadow-field-in-constructor
# gtest_lite
no-shorten-64-to-32
# gtest_lite
# MSVC
# conditional expression is constant (nem szereti az ELKESZULT) markot
/wd4127
# 'function': member function does not override any base class virtual member function
/we4263
# 'class': class has virtual functions, but destructor is not virtual
/we4265
# 'identifier': illegal qualified name in member declaration
/we4596
# 'symbol': exception specification does not match previous declaration
/we4986
4
/permissive-
/diagnostics:caret
###### ######
# Ennek utána kell lennie a 4-nek clang-cl miatt: /W4 clang-cl-ben #
# bekapcsolja valamiért ezt a warningot, bár MSVC nem szól miatta. #
###### ######
no-self-assign-overloaded
# a = a teszteset
)
# MSVC /Wall == clang -Weverything, arra nincs szükségünk
set
(
gw_found_warnings $<$<CXX_COMPILER_ID:GNU,Clang,AppleClang>:-Wall>
)
foreach
(
warn IN LISTS gw_known_warnings
)
string
(
MAKE_C_IDENTIFIER
"
${
warn
}
"
CacheName
)
check_warning_flag
(
"
${
warn
}
"
${
CacheName
}
)
if
(
HAS_WARNING_
${
CacheName
}
)
if
(
warn MATCHES
[[^/]]
)
set
(
WarningPrefix
""
)
else
()
set
(
WarningPrefix
"-W"
)
endif
()
list
(
APPEND gw_found_warnings
"
${
WarningPrefix
}${
warn
}
"
)
endif
()
endforeach
()
target_compile_options
(
"
${
_Target
}
"
PUBLIC
${
gw_found_warnings
}
)
endfunction
()
generate_warnings
(
lab_05
)
target_compile_definitions
(
string5 PRIVATE MEMTRACE
)
if
(
MSVC
)
# ignore comparison of int and size_t
target_compile_options
(
string5 PRIVATE /wd4267
)
endif
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment