I need advice

So i been in a two year relationship. We were engaged but then things got bad between us. Like literally the next day, he showed me he wasn't ready for that commitment. He will be twenty one years old and i feel as if he still has the mindset of a teenager. I'm about eighteen and i thought he was more serious about things at first then i was. He used to show me he was serious but then everything changed. He used to put effort into us, you know dates etc. Literally now he puts no effort into us or changes anything. Even when i mention it to him. He will promise me all the time he will show up to see me on time. But he's always hours upon hours late. Just recently he gave me some bullshit excuse that his friend had to stop a few places first. He won't stay away from drugs, I've accused him of using. He denies it all the time but there's times he will go places and tells me i can't come with. He's lied to me time upon time. I used to be okay with just drinking and smoking but he doesn't wanna change. He's making it hard for me to like move on. He acts as if he isn't gonna lose me because i keep going back to him. He will go all day without hitting me up and then out of the blue he will message me acting like he cares and still loves me. I love him but i can't be with him till he grows up or makes a change in his life...how do i let him know I'm done for good if he can't step up and change? Like I wanna be with him but I'm so unhappy with the relationship. He just doesn't seem to get it. There's times where i was so emotionally drained I'd cry in my sleep. I had to start focusing on myself and not him.